From 2f422ec4d104feff65aadaf80f17d96bf55b8ad5 Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Tue, 10 Sep 2024 15:09:51 -0400 Subject: [PATCH 1/8] First step --- .../tera-optimize-ciemss-drilldown.vue | 17 ++++++++++------- packages/client/hmi-client/src/types/Types.ts | 6 +++--- .../OptimizeRequestCiemss.java | 2 +- .../simulationservice/parts/OptimizeExtra.java | 3 ++- .../simulationservice/parts/OptimizeQoi.java | 3 +-- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index 8743a061e2..e9e8ad8b78 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -779,12 +779,15 @@ const runOptimize = async () => { // These are interventions to be considered but not optimized over. const fixedInterventions: Intervention[] = _.cloneDeep(inactivePolicyGroups.value.map((ele) => ele.intervention)); - // TODO: https://github.com/DARPA-ASKEM/terarium/issues/3909 - // The method should be a list but pyciemss + pyciemss service is not yet ready for this. - const qoi: OptimizeQoi = { - contexts: props.node.state.constraintGroups.map((ele) => ele.targetVariable), - method: props.node.state.constraintGroups[0].qoiMethod - }; + const qoi: OptimizeQoi[] = []; + props.node.state.constraintGroups.forEach((constraintGroup) => + qoi.push({ + context: constraintGroup.targetVariable, + method: constraintGroup.qoiMethod + }) + ); + + const alphas: number[] = props.node.state.constraintGroups.map((ele) => ele.riskTolerance / 100); const optimizePayload: OptimizeRequestCiemss = { userId: 'no_user_provided', @@ -804,7 +807,7 @@ const runOptimize = async () => { numSamples: knobs.value.numSamples, maxiter: knobs.value.maxiter, maxfeval: knobs.value.maxfeval, - alpha: props.node.state.constraintGroups[0].riskTolerance / 100, // riskTolerance to get alpha and divide by 100 to turn into a percent for pyciemss-service. + alpha: alphas, // riskTolerance to get alpha and divide by 100 to turn into a percent for pyciemss-service. solverMethod: knobs.value.solverMethod, solverStepSize: 1 } diff --git a/packages/client/hmi-client/src/types/Types.ts b/packages/client/hmi-client/src/types/Types.ts index a64b85630f..8b161f802b 100644 --- a/packages/client/hmi-client/src/types/Types.ts +++ b/packages/client/hmi-client/src/types/Types.ts @@ -580,7 +580,7 @@ export interface OptimizeRequestCiemss { optimizeInterventions?: OptimizeInterventions; fixedInterventions?: Intervention[]; loggingStepSize?: number; - qoi: OptimizeQoi; + qoi: OptimizeQoi[]; riskBound: number; boundsInterventions: number[][]; extra: OptimizeExtra; @@ -648,7 +648,7 @@ export interface OptimizeExtra { maxiter?: number; maxfeval?: number; isMinimized?: boolean; - alpha?: number; + alpha?: number[]; solverMethod?: string; solverStepSize?: number; } @@ -663,7 +663,7 @@ export interface OptimizeInterventions { } export interface OptimizeQoi { - contexts: string[]; + context: string; method: string; } diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java index 3c040a3f96..b61ec8473b 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java @@ -37,7 +37,7 @@ public class OptimizeRequestCiemss implements Serializable { @TSOptional private Double loggingStepSize; - private OptimizeQoi qoi; + private List qoi; @JsonAlias("risk_bound") private Double riskBound; diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeExtra.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeExtra.java index 124e7cd0e3..e9b79e1ada 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeExtra.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeExtra.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonAlias; import java.io.Serializable; +import java.util.List; import lombok.Data; import lombok.experimental.Accessors; import software.uncharted.terarium.hmiserver.annotations.TSModel; @@ -31,7 +32,7 @@ public class OptimizeExtra implements Serializable { private Boolean isMinimized; @TSOptional - private Double alpha; + private List alpha; @JsonAlias("solver_method") @TSOptional diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java index 0f14372d0c..23ee70ee1f 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java @@ -1,7 +1,6 @@ package software.uncharted.terarium.hmiserver.models.simulationservice.parts; import java.io.Serializable; -import java.util.List; import lombok.Data; import lombok.experimental.Accessors; import software.uncharted.terarium.hmiserver.annotations.TSModel; @@ -12,6 +11,6 @@ // Used to kick off a Optimize job in simulation-service public class OptimizeQoi implements Serializable { - private List contexts; + private String context; private String method; } From 03cbae3ea8a119a422185639cd1ab6e5c39a4dfb Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Tue, 10 Sep 2024 15:13:49 -0400 Subject: [PATCH 2/8] context -> contexts. --- .../optimize-ciemss/tera-optimize-ciemss-drilldown.vue | 8 ++++---- packages/client/hmi-client/src/types/Types.ts | 2 +- .../models/simulationservice/parts/OptimizeQoi.java | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index e9e8ad8b78..1fd504447d 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -779,10 +779,10 @@ const runOptimize = async () => { // These are interventions to be considered but not optimized over. const fixedInterventions: Intervention[] = _.cloneDeep(inactivePolicyGroups.value.map((ele) => ele.intervention)); - const qoi: OptimizeQoi[] = []; + const qois: OptimizeQoi[] = []; props.node.state.constraintGroups.forEach((constraintGroup) => - qoi.push({ - context: constraintGroup.targetVariable, + qois.push({ + contexts: constraintGroup.targetVariable, method: constraintGroup.qoiMethod }) ); @@ -799,7 +799,7 @@ const runOptimize = async () => { }, optimizeInterventions, fixedInterventions, - qoi, + qoi: qois, riskBound: props.node.state.constraintGroups[0].threshold, // TODO: https://github.com/DARPA-ASKEM/terarium/issues/3909 boundsInterventions: listBoundsInterventions, extra: { diff --git a/packages/client/hmi-client/src/types/Types.ts b/packages/client/hmi-client/src/types/Types.ts index 8b161f802b..b15f5e75d0 100644 --- a/packages/client/hmi-client/src/types/Types.ts +++ b/packages/client/hmi-client/src/types/Types.ts @@ -663,7 +663,7 @@ export interface OptimizeInterventions { } export interface OptimizeQoi { - context: string; + contexts: string[]; method: string; } diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java index 23ee70ee1f..0f14372d0c 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java @@ -1,6 +1,7 @@ package software.uncharted.terarium.hmiserver.models.simulationservice.parts; import java.io.Serializable; +import java.util.List; import lombok.Data; import lombok.experimental.Accessors; import software.uncharted.terarium.hmiserver.annotations.TSModel; @@ -11,6 +12,6 @@ // Used to kick off a Optimize job in simulation-service public class OptimizeQoi implements Serializable { - private String context; + private List contexts; private String method; } From 9d303654b8f86f5eb185a5527cf7bdbce0ee8e81 Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Tue, 10 Sep 2024 15:14:28 -0400 Subject: [PATCH 3/8] contexts -> contexts --- .../ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index 1fd504447d..f7da0e4cda 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -782,7 +782,7 @@ const runOptimize = async () => { const qois: OptimizeQoi[] = []; props.node.state.constraintGroups.forEach((constraintGroup) => qois.push({ - contexts: constraintGroup.targetVariable, + contexts: [constraintGroup.targetVariable], method: constraintGroup.qoiMethod }) ); From 8a516d32e1d78dfe241d8c834e8a4a9b64143672 Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Tue, 10 Sep 2024 15:42:37 -0400 Subject: [PATCH 4/8] riskbound -> riskbounds --- .../ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue | 4 ++-- packages/client/hmi-client/src/types/Types.ts | 2 +- .../models/simulationservice/OptimizeRequestCiemss.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index f7da0e4cda..244ba3f67e 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -788,7 +788,7 @@ const runOptimize = async () => { ); const alphas: number[] = props.node.state.constraintGroups.map((ele) => ele.riskTolerance / 100); - + const riskBounds: number[] = props.node.state.constraintGroups.map((ele) => ele.threshold); const optimizePayload: OptimizeRequestCiemss = { userId: 'no_user_provided', engine: 'ciemss', @@ -800,7 +800,7 @@ const runOptimize = async () => { optimizeInterventions, fixedInterventions, qoi: qois, - riskBound: props.node.state.constraintGroups[0].threshold, // TODO: https://github.com/DARPA-ASKEM/terarium/issues/3909 + riskBound: riskBounds, boundsInterventions: listBoundsInterventions, extra: { isMinimized: props.node.state.constraintGroups[0].isMinimized, diff --git a/packages/client/hmi-client/src/types/Types.ts b/packages/client/hmi-client/src/types/Types.ts index b15f5e75d0..235cda39eb 100644 --- a/packages/client/hmi-client/src/types/Types.ts +++ b/packages/client/hmi-client/src/types/Types.ts @@ -581,7 +581,7 @@ export interface OptimizeRequestCiemss { fixedInterventions?: Intervention[]; loggingStepSize?: number; qoi: OptimizeQoi[]; - riskBound: number; + riskBound: number[]; boundsInterventions: number[][]; extra: OptimizeExtra; engine: string; diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java index b61ec8473b..f07acb0564 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java @@ -40,7 +40,7 @@ public class OptimizeRequestCiemss implements Serializable { private List qoi; @JsonAlias("risk_bound") - private Double riskBound; + private List riskBound; @JsonAlias("bounds_interventions") private List> boundsInterventions; From 3e7f62e65db28606aef554e9a20526918b0330f4 Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Thu, 12 Sep 2024 14:32:21 -0400 Subject: [PATCH 5/8] more info in QoI as isMinimized effects more --- .../optimize-ciemss/tera-optimize-ciemss-drilldown.vue | 9 +++++---- packages/client/hmi-client/src/types/Types.ts | 3 ++- .../models/simulationservice/OptimizeRequestCiemss.java | 3 --- .../models/simulationservice/parts/OptimizeQoi.java | 7 +++++++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index bc7e0f11e5..26eda06295 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -792,12 +792,14 @@ const runOptimize = async () => { props.node.state.constraintGroups.forEach((constraintGroup) => qois.push({ contexts: [constraintGroup.targetVariable], - method: constraintGroup.qoiMethod + method: constraintGroup.qoiMethod, + riskBound: constraintGroup.threshold, + isMinimized: constraintGroup.isMinimized }) ); + // riskTolerance to get alpha and divide by 100 to turn into a percent for pyciemss-service. const alphas: number[] = props.node.state.constraintGroups.map((ele) => ele.riskTolerance / 100); - const riskBounds: number[] = props.node.state.constraintGroups.map((ele) => ele.threshold); const optimizePayload: OptimizeRequestCiemss = { userId: 'no_user_provided', engine: 'ciemss', @@ -809,14 +811,13 @@ const runOptimize = async () => { optimizeInterventions, fixedInterventions, qoi: qois, - riskBound: riskBounds, boundsInterventions: listBoundsInterventions, extra: { isMinimized: props.node.state.constraintGroups[0].isMinimized, numSamples: knobs.value.numSamples, maxiter: knobs.value.maxiter, maxfeval: knobs.value.maxfeval, - alpha: alphas, // riskTolerance to get alpha and divide by 100 to turn into a percent for pyciemss-service. + alpha: alphas, solverMethod: knobs.value.solverMethod, solverStepSize: 1 } diff --git a/packages/client/hmi-client/src/types/Types.ts b/packages/client/hmi-client/src/types/Types.ts index ecbc278bb2..f6b5986ab9 100644 --- a/packages/client/hmi-client/src/types/Types.ts +++ b/packages/client/hmi-client/src/types/Types.ts @@ -575,7 +575,6 @@ export interface OptimizeRequestCiemss { fixedInterventions?: Intervention[]; loggingStepSize?: number; qoi: OptimizeQoi[]; - riskBound: number[]; boundsInterventions: number[][]; extra: OptimizeExtra; engine: string; @@ -659,6 +658,8 @@ export interface OptimizeInterventions { export interface OptimizeQoi { contexts: string[]; method: string; + riskBound: number; + isMinimized: boolean; } export interface TimeSpan { diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java index f07acb0564..c17a2a40b5 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/OptimizeRequestCiemss.java @@ -39,9 +39,6 @@ public class OptimizeRequestCiemss implements Serializable { private List qoi; - @JsonAlias("risk_bound") - private List riskBound; - @JsonAlias("bounds_interventions") private List> boundsInterventions; diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java index 0f14372d0c..08c559b042 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/simulationservice/parts/OptimizeQoi.java @@ -1,5 +1,6 @@ package software.uncharted.terarium.hmiserver.models.simulationservice.parts; +import com.fasterxml.jackson.annotation.JsonAlias; import java.io.Serializable; import java.util.List; import lombok.Data; @@ -14,4 +15,10 @@ public class OptimizeQoi implements Serializable { private List contexts; private String method; + + @JsonAlias("risk_bound") + private Double riskBound; + + @JsonAlias("is_minimized") + private Boolean isMinimized; } From dafeaf74b31644e1fb204e9a8834200a1d587161 Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Thu, 12 Sep 2024 14:56:27 -0400 Subject: [PATCH 6/8] utilize isActive --- .../tera-optimize-ciemss-drilldown.vue | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index 26eda06295..db1c962cbb 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -535,12 +535,15 @@ const showSpinner = computed( const showModelModal = ref(false); const displayOptimizationResultMessage = ref(true); -const isRunDisabled = computed( - () => - !props.node.state.constraintGroups?.at(0)?.targetVariable || +const isRunDisabled = computed(() => { + const activeGroups = props.node.state.constraintGroups.filter((ele) => ele.isActive); + return ( + activeGroups.length === 0 || + !activeGroups.every((ele) => ele.targetVariable) || props.node.state.interventionPolicyGroups.length === 0 || activePolicyGroups.value.length <= 0 -); + ); +}); const presetType = computed(() => { if ( @@ -789,7 +792,8 @@ const runOptimize = async () => { const fixedInterventions: Intervention[] = _.cloneDeep(inactivePolicyGroups.value.map((ele) => ele.intervention)); const qois: OptimizeQoi[] = []; - props.node.state.constraintGroups.forEach((constraintGroup) => + const activeGroups = props.node.state.constraintGroups.filter((ele) => ele.isActive); + activeGroups.forEach((constraintGroup) => qois.push({ contexts: [constraintGroup.targetVariable], method: constraintGroup.qoiMethod, @@ -799,7 +803,7 @@ const runOptimize = async () => { ); // riskTolerance to get alpha and divide by 100 to turn into a percent for pyciemss-service. - const alphas: number[] = props.node.state.constraintGroups.map((ele) => ele.riskTolerance / 100); + const alphas: number[] = activeGroups.map((ele) => ele.riskTolerance / 100); const optimizePayload: OptimizeRequestCiemss = { userId: 'no_user_provided', engine: 'ciemss', @@ -813,7 +817,6 @@ const runOptimize = async () => { qoi: qois, boundsInterventions: listBoundsInterventions, extra: { - isMinimized: props.node.state.constraintGroups[0].isMinimized, numSamples: knobs.value.numSamples, maxiter: knobs.value.maxiter, maxfeval: knobs.value.maxfeval, From 2f42e2130eef23c27a9ad7d966845ded26530ec9 Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Thu, 12 Sep 2024 15:23:08 -0400 Subject: [PATCH 7/8] rename activeGroups -> activeConstraintGroups --- .../tera-optimize-ciemss-drilldown.vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index db1c962cbb..23a864d813 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -536,10 +536,10 @@ const showModelModal = ref(false); const displayOptimizationResultMessage = ref(true); const isRunDisabled = computed(() => { - const activeGroups = props.node.state.constraintGroups.filter((ele) => ele.isActive); + const activeConstraintGroups = props.node.state.constraintGroups.filter((ele) => ele.isActive); return ( - activeGroups.length === 0 || - !activeGroups.every((ele) => ele.targetVariable) || + activeConstraintGroups.length === 0 || + !activeConstraintGroups.every((ele) => ele.targetVariable) || props.node.state.interventionPolicyGroups.length === 0 || activePolicyGroups.value.length <= 0 ); @@ -792,8 +792,8 @@ const runOptimize = async () => { const fixedInterventions: Intervention[] = _.cloneDeep(inactivePolicyGroups.value.map((ele) => ele.intervention)); const qois: OptimizeQoi[] = []; - const activeGroups = props.node.state.constraintGroups.filter((ele) => ele.isActive); - activeGroups.forEach((constraintGroup) => + const activeConstraintGroups = props.node.state.constraintGroups.filter((ele) => ele.isActive); + activeConstraintGroups.forEach((constraintGroup) => qois.push({ contexts: [constraintGroup.targetVariable], method: constraintGroup.qoiMethod, @@ -803,7 +803,7 @@ const runOptimize = async () => { ); // riskTolerance to get alpha and divide by 100 to turn into a percent for pyciemss-service. - const alphas: number[] = activeGroups.map((ele) => ele.riskTolerance / 100); + const alphas: number[] = activeConstraintGroups.map((ele) => ele.riskTolerance / 100); const optimizePayload: OptimizeRequestCiemss = { userId: 'no_user_provided', engine: 'ciemss', From 2abb97fc9b6ff4725bdcac4c71a5055aec08f1af Mon Sep 17 00:00:00 2001 From: Tom Szendrey Date: Thu, 12 Sep 2024 16:42:25 -0400 Subject: [PATCH 8/8] active filter for optimize success critera charts --- .../tera-optimize-ciemss-drilldown.vue | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index 23a864d813..225d9f0b34 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -958,23 +958,25 @@ onMounted(async () => { const preparedSuccessCriteriaCharts = computed(() => { const postForecastRunId = props.node.state.postForecastRunId; - return props.node.state.constraintGroups.map((constraint) => - createSuccessCriteriaChart( - riskResults.value[postForecastRunId], - constraint.targetVariable, - constraint.threshold, - constraint.isMinimized, - constraint.riskTolerance, - { - title: constraint.name, - width: chartSize.value.width, - height: chartSize.value.height, - xAxisTitle: 'Number of samples', - yAxisTitle: `${constraint.isMinimized ? 'Max' : 'Min'} value of ${constraint.targetVariable} at all timepoints`, - legend: true - } - ) - ); + return props.node.state.constraintGroups + .filter((ele) => ele.isActive) + .map((constraint) => + createSuccessCriteriaChart( + riskResults.value[postForecastRunId], + constraint.targetVariable, + constraint.threshold, + constraint.isMinimized, + constraint.riskTolerance, + { + title: constraint.name, + width: chartSize.value.width, + height: chartSize.value.height, + xAxisTitle: 'Number of samples', + yAxisTitle: `${constraint.isMinimized ? 'Max' : 'Min'} value of ${constraint.targetVariable} at all timepoints`, + legend: true + } + ) + ); }); // Creates forecast charts for interventions and simulation charts, based on the selected variables