moga
- pydantic model dakota.spec.method.moga.MogaSelection
Generated model for MogaSelection
Show JSON schema
{ "title": "MogaSelection", "description": "Generated model for MogaSelection", "type": "object", "properties": { "moga": { "$ref": "#/$defs/MogaConfig", "x-materialization": [ { "ir_key": "method.algorithm", "ir_value_type": "unsigned short", "storage_type": "PRESENCE_ENUM", "stored_value": "MOGA" } ] } }, "$defs": { "BelowLimit": { "additionalProperties": false, "description": "Limit number of designs dominating those kept", "properties": { "below_limit": { "$ref": "#/$defs/BelowLimitConfig", "argument": "threshhold" } }, "required": [ "below_limit" ], "title": "BelowLimit", "type": "object" }, "BelowLimitConfig": { "additionalProperties": false, "description": "Limit number of designs dominating those kept", "properties": { "threshhold": { "description": "Limit number of designs dominating those kept", "exclusiveMinimum": 0, "title": "Threshhold", "type": "number", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.fitness_limit", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "below_limit" } ] }, "shrinkage_fraction": { "default": 0.9, "description": "Decrease the population size by a percentage", "maximum": 1, "minimum": 0, "title": "Shrinkage Fraction", "type": "number", "x-aliases": [ "shrinkage_percentage" ], "x-materialization": [ { "ir_key": "method.jega.shrinkage_percentage", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "threshhold" ], "title": "BelowLimitConfig", "type": "object" }, "BitRandom": { "additionalProperties": false, "description": "Mutate by flipping a random bit", "properties": { "bit_random": { "const": true, "default": true, "description": "Mutate by flipping a random bit", "title": "Bit Random", "type": "boolean", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "bit_random" } ] } }, "title": "BitRandom", "type": "object" }, "ConvergenceType": { "additionalProperties": false, "description": "Select the convergence type for JEGA methods", "properties": { "metric_tracker": { "const": true, "description": "Track changes in the non-dominated frontier", "title": "Metric Tracker", "type": "boolean", "x-materialization": [ { "ir_key": "method.jega.convergence_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "metric_tracker" } ] }, "percent_change": { "default": -1.7976931348623157e+308, "description": "Define the convergence criterion for JEGA methods", "minimum": 0, "title": "Percent Change", "type": "number", "x-materialization": [ { "ir_key": "method.convergence_tolerance", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" }, { "ir_key": "method.jega.percent_change", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] }, "num_generations": { "default": 15, "description": "Define the convergence criterion for JEGA methods", "minimum": 0, "title": "Num Generations", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_generations", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "metric_tracker" ], "title": "ConvergenceType", "type": "object" }, "CrossoverType": { "additionalProperties": false, "description": "Select a crossover type for JEGA methods", "properties": { "strategy": { "anchor": true, "anyOf": [ { "$ref": "#/$defs/MultiPointBinary" }, { "$ref": "#/$defs/MultiPointParameterizedBinary" }, { "$ref": "#/$defs/MultiPointReal" }, { "$ref": "#/$defs/ShuffleRandom" } ], "description": "Crossover Type", "title": "Strategy", "x-union-pattern": 4 }, "crossover_rate": { "anyOf": [ { "minimum": 0, "type": "number" }, { "type": "null" } ], "default": null, "description": "Specify the probability of a crossover event", "title": "Crossover Rate", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.crossover_rate", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "null_crossover" } ] } }, "required": [ "strategy" ], "title": "CrossoverType", "type": "object" }, "Debug": { "additionalProperties": false, "description": "Level 5 of 5 - maximum", "properties": { "debug": { "const": true, "default": true, "description": "Level 5 of 5 - maximum", "title": "Debug", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "DEBUG_OUTPUT" } ] } }, "title": "Debug", "type": "object" }, "DominationCount": { "additionalProperties": false, "description": "Rank each member by the number of members that dominate it", "properties": { "domination_count": { "const": true, "default": true, "description": "Rank each member by the number of members that dominate it", "title": "Domination Count", "type": "boolean", "x-materialization": [ { "ir_key": "method.fitness_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "domination_count" } ] } }, "title": "DominationCount", "type": "object" }, "LayerRank": { "additionalProperties": false, "description": "Assign each member to a layer, based on domination the rank based on layers", "properties": { "layer_rank": { "const": true, "default": true, "description": "Assign each member to a layer, based on domination the rank based on layers", "title": "Layer Rank", "type": "boolean", "x-materialization": [ { "ir_key": "method.fitness_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "layer_rank" } ] } }, "title": "LayerRank", "type": "object" }, "MaxDesigns": { "additionalProperties": false, "description": "Limit number of solutions to remain in the population", "properties": { "max_designs": { "$ref": "#/$defs/MaxDesignsConfig", "argument": "min_distances" } }, "required": [ "max_designs" ], "title": "MaxDesigns", "type": "object" }, "MaxDesignsConfig": { "additionalProperties": false, "description": "Limit number of solutions to remain in the population", "properties": { "min_distances": { "description": "Limit number of solutions to remain in the population", "items": { "type": "number" }, "title": "Min Distances", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "max_designs" } ] }, "num_designs": { "default": 100, "description": "Limit the number of solutions", "minimum": 2, "title": "Num Designs", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_designs", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "min_distances" ], "title": "MaxDesignsConfig", "type": "object" }, "MethodJegaCommonOptsInitializationTypeFlatFile": { "additionalProperties": false, "description": "Read initial solutions from file", "properties": { "flat_file": { "description": "Read initial solutions from file", "title": "Flat File", "type": "string", "x-materialization": [ { "ir_key": "method.initialization_type", "ir_value_type": "String", "secondary_ir_key": "method.flat_file", "secondary_ir_value_type": "String", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "flat_file" } ] } }, "required": [ "flat_file" ], "title": "MethodJegaCommonOptsInitializationTypeFlatFile", "type": "object" }, "MethodJegaCommonOptsInitializationTypeSimpleRandom": { "additionalProperties": false, "description": "Create random initial solutions", "properties": { "simple_random": { "const": true, "default": true, "description": "Create random initial solutions", "title": "Simple Random", "type": "boolean", "x-materialization": [ { "ir_key": "method.initialization_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "random" } ] } }, "title": "MethodJegaCommonOptsInitializationTypeSimpleRandom", "type": "object" }, "MethodJegaCommonOptsInitializationTypeUniqueRandom": { "additionalProperties": false, "description": "Create random initial solutions, but enforce uniqueness (default)", "properties": { "unique_random": { "const": true, "default": true, "description": "Create random initial solutions, but enforce uniqueness (default)", "title": "Unique Random", "type": "boolean", "x-materialization": [ { "ir_key": "method.initialization_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "unique_random" } ] } }, "title": "MethodJegaCommonOptsInitializationTypeUniqueRandom", "type": "object" }, "MethodJegaCommonOptsMutationType": { "additionalProperties": false, "description": "Select a mutation type for JEGA methods", "properties": { "strategy": { "anchor": true, "anyOf": [ { "$ref": "#/$defs/BitRandom" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeReplaceUniform" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeOffsetNormal" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeOffsetCauchy" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeOffsetUniform" } ], "description": "Mutation Type", "title": "Strategy", "x-union-pattern": 4 }, "mutation_rate": { "anyOf": [ { "minimum": 0, "type": "number" }, { "type": "null" } ], "default": null, "description": "Set probability of a mutation", "title": "Mutation Rate", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "secondary_ir_key": "method.mutation_rate", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "null_mutation" } ] } }, "required": [ "strategy" ], "title": "MethodJegaCommonOptsMutationType", "type": "object" }, "MethodJegaCommonOptsMutationTypeOffsetCauchy": { "additionalProperties": false, "description": "Use a Cauchy distribution for the mutation offset", "properties": { "offset_cauchy": { "$ref": "#/$defs/OffsetNormalConfig", "description": "Use a Cauchy distribution for the mutation offset", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "offset_cauchy" } ] } }, "required": [ "offset_cauchy" ], "title": "MethodJegaCommonOptsMutationTypeOffsetCauchy", "type": "object" }, "MethodJegaCommonOptsMutationTypeOffsetNormal": { "additionalProperties": false, "description": "Set mutation offset to use a normal distribution", "properties": { "offset_normal": { "$ref": "#/$defs/OffsetNormalConfig", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "offset_normal" } ] } }, "required": [ "offset_normal" ], "title": "MethodJegaCommonOptsMutationTypeOffsetNormal", "type": "object" }, "MethodJegaCommonOptsMutationTypeOffsetUniform": { "additionalProperties": false, "description": "Set mutation offset to use a uniform distribution", "properties": { "offset_uniform": { "$ref": "#/$defs/OffsetNormalConfig", "description": "Set mutation offset to use a uniform distribution", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "offset_uniform" } ] } }, "required": [ "offset_uniform" ], "title": "MethodJegaCommonOptsMutationTypeOffsetUniform", "type": "object" }, "MethodJegaCommonOptsMutationTypeReplaceUniform": { "additionalProperties": false, "description": "Use uniformly distributed value over range of parameter", "properties": { "replace_uniform": { "const": true, "default": true, "description": "Use uniformly distributed value over range of parameter", "title": "Replace Uniform", "type": "boolean", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "replace_uniform" } ] } }, "title": "MethodJegaCommonOptsMutationTypeReplaceUniform", "type": "object" }, "MogaConfig": { "additionalProperties": false, "description": "Multi-objective Genetic Algorithm (a.k.a Evolutionary Algorithm)", "properties": { "population_size": { "default": 50, "description": "Set the initial population size in JEGA methods", "minimum": 0, "title": "Population Size", "type": "integer", "x-materialization": [ { "ir_key": "method.population_size", "ir_value_type": "int", "storage_type": "DIRECT_VALUE" } ] }, "log_file": { "default": "JEGAGlobal.log", "description": "Specify the name of a log file", "title": "Log File", "type": "string", "x-materialization": [ { "ir_key": "method.log_file", "ir_value_type": "String", "storage_type": "DIRECT_VALUE" } ] }, "print_each_pop": { "anyOf": [ { "const": true, "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Print every population to a population file", "title": "Print Each Pop", "x-materialization": [ { "ir_key": "method.print_each_pop", "ir_value_type": "bool", "storage_type": "PRESENCE_TRUE" } ] }, "initialization_type": { "anyOf": [ { "$ref": "#/$defs/MethodJegaCommonOptsInitializationTypeSimpleRandom" }, { "$ref": "#/$defs/MethodJegaCommonOptsInitializationTypeUniqueRandom" }, { "$ref": "#/$defs/MethodJegaCommonOptsInitializationTypeFlatFile" } ], "description": "Specify how to initialize the population", "title": "Initialization Type", "x-model-default": "MethodJegaCommonOptsInitializationTypeUniqueRandom", "x-union-pattern": 1 }, "crossover_type": { "anyOf": [ { "$ref": "#/$defs/CrossoverType" }, { "type": "null" } ], "default": null, "description": "Select a crossover type for JEGA methods" }, "mutation_type": { "anyOf": [ { "$ref": "#/$defs/MethodJegaCommonOptsMutationType" }, { "type": "null" } ], "default": null, "description": "Select a mutation type for JEGA methods" }, "seed": { "anyOf": [ { "exclusiveMinimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Seed of the random number generator", "title": "Seed", "x-materialization": [ { "ir_key": "method.random_seed", "ir_value_type": "int", "storage_type": "DIRECT_VALUE" } ] }, "convergence_tolerance": { "default": -1.7976931348623157e+308, "description": "Stopping criterion based on objective function or statistics convergence", "title": "Convergence Tolerance", "type": "number", "x-materialization": [ { "ir_key": "method.convergence_tolerance", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" }, { "ir_key": "method.jega.percent_change", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] }, "model_pointer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Identifier for model block to be used by a method", "title": "Model Pointer", "x-block-pointer": "model", "x-materialization": [ { "ir_key": "method.model_pointer", "ir_value_type": "String", "storage_type": "DIRECT_VALUE" } ] }, "scaling": { "anyOf": [ { "const": true, "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Turn on scaling for variables, responses, and constraints", "title": "Scaling", "x-materialization": [ { "ir_key": "method.scaling", "ir_value_type": "bool", "storage_type": "PRESENCE_TRUE" } ] }, "max_function_evaluations": { "default": 9223372036854775807, "description": "Number of function evaluations allowed for optimizers", "minimum": 0, "title": "Max Function Evaluations", "type": "integer", "x-materialization": [ { "ir_key": "method.max_function_evaluations", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "max_iterations": { "default": 9223372036854775807, "description": "Number of iterations allowed for optimizers and adaptive UQ methods", "minimum": 0, "title": "Max Iterations", "type": "integer", "x-materialization": [ { "ir_key": "method.max_iterations", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "id_method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Name the method block; helpful when there are multiple", "title": "Id Method", "x-materialization": [ { "ir_key": "method.id", "ir_value_type": "String", "storage_type": "DIRECT_VALUE" } ] }, "output": { "anyOf": [ { "$ref": "#/$defs/Debug" }, { "$ref": "#/$defs/Verbose" }, { "$ref": "#/$defs/Normal" }, { "$ref": "#/$defs/Quiet" }, { "$ref": "#/$defs/Silent" } ], "description": "Control how much method information is written to the screen and output file", "title": "Output", "x-model-default": "Normal", "x-union-pattern": 1 }, "final_solutions": { "default": 0, "description": "Number of designs returned as the best solutions", "minimum": 0, "title": "Final Solutions", "type": "integer", "x-materialization": [ { "ir_key": "method.final_solutions", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "fitness_type": { "anyOf": [ { "$ref": "#/$defs/LayerRank" }, { "$ref": "#/$defs/DominationCount" }, { "type": "null" } ], "default": null, "description": "Select the fitness type for JEGA methods", "title": "Fitness Type", "x-union-pattern": 2 }, "replacement_type": { "anyOf": [ { "$ref": "#/$defs/MogaReplacementTypeElitist" }, { "$ref": "#/$defs/MogaReplacementTypeRouletteWheel" }, { "$ref": "#/$defs/MogaReplacementTypeUniqueRouletteWheel" }, { "$ref": "#/$defs/BelowLimit" }, { "type": "null" } ], "default": null, "description": "Select a replacement type for JEGA methods", "title": "Replacement Type", "x-union-pattern": 2 }, "niching_type": { "anyOf": [ { "$ref": "#/$defs/Radial" }, { "$ref": "#/$defs/NichingTypeDistance" }, { "$ref": "#/$defs/MaxDesigns" }, { "type": "null" } ], "default": null, "description": "Specify the type of niching pressure", "title": "Niching Type", "x-union-pattern": 2 }, "convergence_type": { "anyOf": [ { "$ref": "#/$defs/ConvergenceType" }, { "type": "null" } ], "default": null, "description": "Select the convergence type for JEGA methods" }, "postprocessor_type": { "anyOf": [ { "$ref": "#/$defs/PostprocessorType" }, { "type": "null" } ], "default": null, "description": "Post process the final solution from ``moga``" } }, "title": "MogaConfig", "type": "object" }, "MogaReplacementTypeElitist": { "additionalProperties": false, "description": "Use the best designs to form a new population", "properties": { "elitist": { "const": true, "default": true, "description": "Use the best designs to form a new population", "title": "Elitist", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "elitist" } ] } }, "title": "MogaReplacementTypeElitist", "type": "object" }, "MogaReplacementTypeRouletteWheel": { "additionalProperties": false, "description": "Replace population", "properties": { "roulette_wheel": { "const": true, "default": true, "description": "Replace population", "title": "Roulette Wheel", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "roulette_wheel" } ] } }, "title": "MogaReplacementTypeRouletteWheel", "type": "object" }, "MogaReplacementTypeUniqueRouletteWheel": { "additionalProperties": false, "description": "Replace population", "properties": { "unique_roulette_wheel": { "const": true, "default": true, "description": "Replace population", "title": "Unique Roulette Wheel", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "unique_roulette_wheel" } ] } }, "title": "MogaReplacementTypeUniqueRouletteWheel", "type": "object" }, "MultiPointBinary": { "additionalProperties": false, "description": "Use bit switching for crossover events", "properties": { "multi_point_binary": { "default": 2, "description": "Use bit switching for crossover events", "exclusiveMinimum": 0, "title": "Multi Point Binary", "type": "integer", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.num_cross_points", "secondary_ir_value_type": "size_t", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "multi_point_binary" } ] } }, "title": "MultiPointBinary", "type": "object" }, "MultiPointParameterizedBinary": { "additionalProperties": false, "description": "Use bit switching to crossover each design variable", "properties": { "multi_point_parameterized_binary": { "default": 2, "description": "Use bit switching to crossover each design variable", "exclusiveMinimum": 0, "title": "Multi Point Parameterized Binary", "type": "integer", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.num_cross_points", "secondary_ir_value_type": "size_t", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "multi_point_parameterized_binary" } ] } }, "title": "MultiPointParameterizedBinary", "type": "object" }, "MultiPointReal": { "additionalProperties": false, "description": "Perform crossover in real valued genome", "properties": { "multi_point_real": { "default": 2, "description": "Perform crossover in real valued genome", "exclusiveMinimum": 0, "title": "Multi Point Real", "type": "integer", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.num_cross_points", "secondary_ir_value_type": "size_t", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "multi_point_real" } ] } }, "title": "MultiPointReal", "type": "object" }, "NichingTypeDistance": { "additionalProperties": false, "description": "Enforce minimum Euclidean distance between designs", "properties": { "distance": { "description": "Enforce minimum Euclidean distance between designs", "items": { "type": "number" }, "title": "Distance", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "distance" } ] } }, "required": [ "distance" ], "title": "NichingTypeDistance", "type": "object" }, "Normal": { "additionalProperties": false, "description": "Level 3 of 5 - default", "properties": { "normal": { "const": true, "default": true, "description": "Level 3 of 5 - default", "title": "Normal", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "NORMAL_OUTPUT" } ] } }, "title": "Normal", "type": "object" }, "OffsetNormalConfig": { "additionalProperties": false, "description": "Set mutation offset to use a normal distribution", "properties": { "mutation_scale": { "default": 0.1, "description": "Scales mutation across range of parameter", "maximum": 1, "minimum": 0, "title": "Mutation Scale", "type": "number", "x-materialization": [ { "ir_key": "method.mutation_scale", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] } }, "title": "OffsetNormalConfig", "type": "object" }, "PostprocessorType": { "additionalProperties": false, "description": "Post process the final solution from ``moga``", "properties": { "orthogonal_distance": { "description": "Get subset of Pareto front based on distance", "items": { "type": "number" }, "title": "Orthogonal Distance", "type": "array", "x-materialization": [ { "ir_key": "method.jega.postprocessor_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.distance_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "distance_postprocessor" } ] } }, "required": [ "orthogonal_distance" ], "title": "PostprocessorType", "type": "object" }, "Quiet": { "additionalProperties": false, "description": "Level 2 of 5 - less than normal", "properties": { "quiet": { "const": true, "default": true, "description": "Level 2 of 5 - less than normal", "title": "Quiet", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "QUIET_OUTPUT" } ] } }, "title": "Quiet", "type": "object" }, "Radial": { "additionalProperties": false, "description": "Set niching distance to percentage of non-dominated range", "properties": { "radial": { "description": "Set niching distance to percentage of non-dominated range", "items": { "type": "number" }, "title": "Radial", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "radial" } ] } }, "required": [ "radial" ], "title": "Radial", "type": "object" }, "ShuffleRandom": { "additionalProperties": false, "description": "Perform crossover by choosing design variable(s)", "properties": { "shuffle_random": { "$ref": "#/$defs/ShuffleRandomConfig", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "shuffle_random" } ] } }, "required": [ "shuffle_random" ], "title": "ShuffleRandom", "type": "object" }, "ShuffleRandomConfig": { "additionalProperties": false, "description": "Perform crossover by choosing design variable(s)", "properties": { "num_parents": { "default": 2, "description": "Number of parents in random shuffle crossover", "exclusiveMinimum": 0, "title": "Num Parents", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_parents", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "num_offspring": { "default": 2, "description": "Number of offspring in random shuffle crossover", "exclusiveMinimum": 0, "title": "Num Offspring", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_offspring", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "title": "ShuffleRandomConfig", "type": "object" }, "Silent": { "additionalProperties": false, "description": "Level 1 of 5 - minimum", "properties": { "silent": { "const": true, "default": true, "description": "Level 1 of 5 - minimum", "title": "Silent", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "SILENT_OUTPUT" } ] } }, "title": "Silent", "type": "object" }, "Verbose": { "additionalProperties": false, "description": "Level 4 of 5 - more than normal", "properties": { "verbose": { "const": true, "default": true, "description": "Level 4 of 5 - more than normal", "title": "Verbose", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "VERBOSE_OUTPUT" } ] } }, "title": "Verbose", "type": "object" } }, "additionalProperties": false, "required": [ "moga" ] }
- field moga: MogaConfig [Required]
- classmethod get_registry() dict[str, type[MethodSelection]]
Get registry, performing deferred registration on first call
- classmethod get_union()
Generate Union from all registered selections
- pydantic model dakota.spec.method.moga.MogaConfig
Multi-objective Genetic Algorithm (a.k.a Evolutionary Algorithm)
Show JSON schema
{ "title": "MogaConfig", "description": "Multi-objective Genetic Algorithm (a.k.a Evolutionary Algorithm)", "type": "object", "properties": { "population_size": { "default": 50, "description": "Set the initial population size in JEGA methods", "minimum": 0, "title": "Population Size", "type": "integer", "x-materialization": [ { "ir_key": "method.population_size", "ir_value_type": "int", "storage_type": "DIRECT_VALUE" } ] }, "log_file": { "default": "JEGAGlobal.log", "description": "Specify the name of a log file", "title": "Log File", "type": "string", "x-materialization": [ { "ir_key": "method.log_file", "ir_value_type": "String", "storage_type": "DIRECT_VALUE" } ] }, "print_each_pop": { "anyOf": [ { "const": true, "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Print every population to a population file", "title": "Print Each Pop", "x-materialization": [ { "ir_key": "method.print_each_pop", "ir_value_type": "bool", "storage_type": "PRESENCE_TRUE" } ] }, "initialization_type": { "anyOf": [ { "$ref": "#/$defs/MethodJegaCommonOptsInitializationTypeSimpleRandom" }, { "$ref": "#/$defs/MethodJegaCommonOptsInitializationTypeUniqueRandom" }, { "$ref": "#/$defs/MethodJegaCommonOptsInitializationTypeFlatFile" } ], "description": "Specify how to initialize the population", "title": "Initialization Type", "x-model-default": "MethodJegaCommonOptsInitializationTypeUniqueRandom", "x-union-pattern": 1 }, "crossover_type": { "anyOf": [ { "$ref": "#/$defs/CrossoverType" }, { "type": "null" } ], "default": null, "description": "Select a crossover type for JEGA methods" }, "mutation_type": { "anyOf": [ { "$ref": "#/$defs/MethodJegaCommonOptsMutationType" }, { "type": "null" } ], "default": null, "description": "Select a mutation type for JEGA methods" }, "seed": { "anyOf": [ { "exclusiveMinimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Seed of the random number generator", "title": "Seed", "x-materialization": [ { "ir_key": "method.random_seed", "ir_value_type": "int", "storage_type": "DIRECT_VALUE" } ] }, "convergence_tolerance": { "default": -1.7976931348623157e+308, "description": "Stopping criterion based on objective function or statistics convergence", "title": "Convergence Tolerance", "type": "number", "x-materialization": [ { "ir_key": "method.convergence_tolerance", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" }, { "ir_key": "method.jega.percent_change", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] }, "model_pointer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Identifier for model block to be used by a method", "title": "Model Pointer", "x-block-pointer": "model", "x-materialization": [ { "ir_key": "method.model_pointer", "ir_value_type": "String", "storage_type": "DIRECT_VALUE" } ] }, "scaling": { "anyOf": [ { "const": true, "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Turn on scaling for variables, responses, and constraints", "title": "Scaling", "x-materialization": [ { "ir_key": "method.scaling", "ir_value_type": "bool", "storage_type": "PRESENCE_TRUE" } ] }, "max_function_evaluations": { "default": 9223372036854775807, "description": "Number of function evaluations allowed for optimizers", "minimum": 0, "title": "Max Function Evaluations", "type": "integer", "x-materialization": [ { "ir_key": "method.max_function_evaluations", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "max_iterations": { "default": 9223372036854775807, "description": "Number of iterations allowed for optimizers and adaptive UQ methods", "minimum": 0, "title": "Max Iterations", "type": "integer", "x-materialization": [ { "ir_key": "method.max_iterations", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "id_method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Name the method block; helpful when there are multiple", "title": "Id Method", "x-materialization": [ { "ir_key": "method.id", "ir_value_type": "String", "storage_type": "DIRECT_VALUE" } ] }, "output": { "anyOf": [ { "$ref": "#/$defs/Debug" }, { "$ref": "#/$defs/Verbose" }, { "$ref": "#/$defs/Normal" }, { "$ref": "#/$defs/Quiet" }, { "$ref": "#/$defs/Silent" } ], "description": "Control how much method information is written to the screen and output file", "title": "Output", "x-model-default": "Normal", "x-union-pattern": 1 }, "final_solutions": { "default": 0, "description": "Number of designs returned as the best solutions", "minimum": 0, "title": "Final Solutions", "type": "integer", "x-materialization": [ { "ir_key": "method.final_solutions", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "fitness_type": { "anyOf": [ { "$ref": "#/$defs/LayerRank" }, { "$ref": "#/$defs/DominationCount" }, { "type": "null" } ], "default": null, "description": "Select the fitness type for JEGA methods", "title": "Fitness Type", "x-union-pattern": 2 }, "replacement_type": { "anyOf": [ { "$ref": "#/$defs/MogaReplacementTypeElitist" }, { "$ref": "#/$defs/MogaReplacementTypeRouletteWheel" }, { "$ref": "#/$defs/MogaReplacementTypeUniqueRouletteWheel" }, { "$ref": "#/$defs/BelowLimit" }, { "type": "null" } ], "default": null, "description": "Select a replacement type for JEGA methods", "title": "Replacement Type", "x-union-pattern": 2 }, "niching_type": { "anyOf": [ { "$ref": "#/$defs/Radial" }, { "$ref": "#/$defs/NichingTypeDistance" }, { "$ref": "#/$defs/MaxDesigns" }, { "type": "null" } ], "default": null, "description": "Specify the type of niching pressure", "title": "Niching Type", "x-union-pattern": 2 }, "convergence_type": { "anyOf": [ { "$ref": "#/$defs/ConvergenceType" }, { "type": "null" } ], "default": null, "description": "Select the convergence type for JEGA methods" }, "postprocessor_type": { "anyOf": [ { "$ref": "#/$defs/PostprocessorType" }, { "type": "null" } ], "default": null, "description": "Post process the final solution from ``moga``" } }, "$defs": { "BelowLimit": { "additionalProperties": false, "description": "Limit number of designs dominating those kept", "properties": { "below_limit": { "$ref": "#/$defs/BelowLimitConfig", "argument": "threshhold" } }, "required": [ "below_limit" ], "title": "BelowLimit", "type": "object" }, "BelowLimitConfig": { "additionalProperties": false, "description": "Limit number of designs dominating those kept", "properties": { "threshhold": { "description": "Limit number of designs dominating those kept", "exclusiveMinimum": 0, "title": "Threshhold", "type": "number", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.fitness_limit", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "below_limit" } ] }, "shrinkage_fraction": { "default": 0.9, "description": "Decrease the population size by a percentage", "maximum": 1, "minimum": 0, "title": "Shrinkage Fraction", "type": "number", "x-aliases": [ "shrinkage_percentage" ], "x-materialization": [ { "ir_key": "method.jega.shrinkage_percentage", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "threshhold" ], "title": "BelowLimitConfig", "type": "object" }, "BitRandom": { "additionalProperties": false, "description": "Mutate by flipping a random bit", "properties": { "bit_random": { "const": true, "default": true, "description": "Mutate by flipping a random bit", "title": "Bit Random", "type": "boolean", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "bit_random" } ] } }, "title": "BitRandom", "type": "object" }, "ConvergenceType": { "additionalProperties": false, "description": "Select the convergence type for JEGA methods", "properties": { "metric_tracker": { "const": true, "description": "Track changes in the non-dominated frontier", "title": "Metric Tracker", "type": "boolean", "x-materialization": [ { "ir_key": "method.jega.convergence_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "metric_tracker" } ] }, "percent_change": { "default": -1.7976931348623157e+308, "description": "Define the convergence criterion for JEGA methods", "minimum": 0, "title": "Percent Change", "type": "number", "x-materialization": [ { "ir_key": "method.convergence_tolerance", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" }, { "ir_key": "method.jega.percent_change", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] }, "num_generations": { "default": 15, "description": "Define the convergence criterion for JEGA methods", "minimum": 0, "title": "Num Generations", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_generations", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "metric_tracker" ], "title": "ConvergenceType", "type": "object" }, "CrossoverType": { "additionalProperties": false, "description": "Select a crossover type for JEGA methods", "properties": { "strategy": { "anchor": true, "anyOf": [ { "$ref": "#/$defs/MultiPointBinary" }, { "$ref": "#/$defs/MultiPointParameterizedBinary" }, { "$ref": "#/$defs/MultiPointReal" }, { "$ref": "#/$defs/ShuffleRandom" } ], "description": "Crossover Type", "title": "Strategy", "x-union-pattern": 4 }, "crossover_rate": { "anyOf": [ { "minimum": 0, "type": "number" }, { "type": "null" } ], "default": null, "description": "Specify the probability of a crossover event", "title": "Crossover Rate", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.crossover_rate", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "null_crossover" } ] } }, "required": [ "strategy" ], "title": "CrossoverType", "type": "object" }, "Debug": { "additionalProperties": false, "description": "Level 5 of 5 - maximum", "properties": { "debug": { "const": true, "default": true, "description": "Level 5 of 5 - maximum", "title": "Debug", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "DEBUG_OUTPUT" } ] } }, "title": "Debug", "type": "object" }, "DominationCount": { "additionalProperties": false, "description": "Rank each member by the number of members that dominate it", "properties": { "domination_count": { "const": true, "default": true, "description": "Rank each member by the number of members that dominate it", "title": "Domination Count", "type": "boolean", "x-materialization": [ { "ir_key": "method.fitness_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "domination_count" } ] } }, "title": "DominationCount", "type": "object" }, "LayerRank": { "additionalProperties": false, "description": "Assign each member to a layer, based on domination the rank based on layers", "properties": { "layer_rank": { "const": true, "default": true, "description": "Assign each member to a layer, based on domination the rank based on layers", "title": "Layer Rank", "type": "boolean", "x-materialization": [ { "ir_key": "method.fitness_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "layer_rank" } ] } }, "title": "LayerRank", "type": "object" }, "MaxDesigns": { "additionalProperties": false, "description": "Limit number of solutions to remain in the population", "properties": { "max_designs": { "$ref": "#/$defs/MaxDesignsConfig", "argument": "min_distances" } }, "required": [ "max_designs" ], "title": "MaxDesigns", "type": "object" }, "MaxDesignsConfig": { "additionalProperties": false, "description": "Limit number of solutions to remain in the population", "properties": { "min_distances": { "description": "Limit number of solutions to remain in the population", "items": { "type": "number" }, "title": "Min Distances", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "max_designs" } ] }, "num_designs": { "default": 100, "description": "Limit the number of solutions", "minimum": 2, "title": "Num Designs", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_designs", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "min_distances" ], "title": "MaxDesignsConfig", "type": "object" }, "MethodJegaCommonOptsInitializationTypeFlatFile": { "additionalProperties": false, "description": "Read initial solutions from file", "properties": { "flat_file": { "description": "Read initial solutions from file", "title": "Flat File", "type": "string", "x-materialization": [ { "ir_key": "method.initialization_type", "ir_value_type": "String", "secondary_ir_key": "method.flat_file", "secondary_ir_value_type": "String", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "flat_file" } ] } }, "required": [ "flat_file" ], "title": "MethodJegaCommonOptsInitializationTypeFlatFile", "type": "object" }, "MethodJegaCommonOptsInitializationTypeSimpleRandom": { "additionalProperties": false, "description": "Create random initial solutions", "properties": { "simple_random": { "const": true, "default": true, "description": "Create random initial solutions", "title": "Simple Random", "type": "boolean", "x-materialization": [ { "ir_key": "method.initialization_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "random" } ] } }, "title": "MethodJegaCommonOptsInitializationTypeSimpleRandom", "type": "object" }, "MethodJegaCommonOptsInitializationTypeUniqueRandom": { "additionalProperties": false, "description": "Create random initial solutions, but enforce uniqueness (default)", "properties": { "unique_random": { "const": true, "default": true, "description": "Create random initial solutions, but enforce uniqueness (default)", "title": "Unique Random", "type": "boolean", "x-materialization": [ { "ir_key": "method.initialization_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "unique_random" } ] } }, "title": "MethodJegaCommonOptsInitializationTypeUniqueRandom", "type": "object" }, "MethodJegaCommonOptsMutationType": { "additionalProperties": false, "description": "Select a mutation type for JEGA methods", "properties": { "strategy": { "anchor": true, "anyOf": [ { "$ref": "#/$defs/BitRandom" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeReplaceUniform" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeOffsetNormal" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeOffsetCauchy" }, { "$ref": "#/$defs/MethodJegaCommonOptsMutationTypeOffsetUniform" } ], "description": "Mutation Type", "title": "Strategy", "x-union-pattern": 4 }, "mutation_rate": { "anyOf": [ { "minimum": 0, "type": "number" }, { "type": "null" } ], "default": null, "description": "Set probability of a mutation", "title": "Mutation Rate", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "secondary_ir_key": "method.mutation_rate", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "null_mutation" } ] } }, "required": [ "strategy" ], "title": "MethodJegaCommonOptsMutationType", "type": "object" }, "MethodJegaCommonOptsMutationTypeOffsetCauchy": { "additionalProperties": false, "description": "Use a Cauchy distribution for the mutation offset", "properties": { "offset_cauchy": { "$ref": "#/$defs/OffsetNormalConfig", "description": "Use a Cauchy distribution for the mutation offset", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "offset_cauchy" } ] } }, "required": [ "offset_cauchy" ], "title": "MethodJegaCommonOptsMutationTypeOffsetCauchy", "type": "object" }, "MethodJegaCommonOptsMutationTypeOffsetNormal": { "additionalProperties": false, "description": "Set mutation offset to use a normal distribution", "properties": { "offset_normal": { "$ref": "#/$defs/OffsetNormalConfig", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "offset_normal" } ] } }, "required": [ "offset_normal" ], "title": "MethodJegaCommonOptsMutationTypeOffsetNormal", "type": "object" }, "MethodJegaCommonOptsMutationTypeOffsetUniform": { "additionalProperties": false, "description": "Set mutation offset to use a uniform distribution", "properties": { "offset_uniform": { "$ref": "#/$defs/OffsetNormalConfig", "description": "Set mutation offset to use a uniform distribution", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "offset_uniform" } ] } }, "required": [ "offset_uniform" ], "title": "MethodJegaCommonOptsMutationTypeOffsetUniform", "type": "object" }, "MethodJegaCommonOptsMutationTypeReplaceUniform": { "additionalProperties": false, "description": "Use uniformly distributed value over range of parameter", "properties": { "replace_uniform": { "const": true, "default": true, "description": "Use uniformly distributed value over range of parameter", "title": "Replace Uniform", "type": "boolean", "x-materialization": [ { "ir_key": "method.mutation_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "replace_uniform" } ] } }, "title": "MethodJegaCommonOptsMutationTypeReplaceUniform", "type": "object" }, "MogaReplacementTypeElitist": { "additionalProperties": false, "description": "Use the best designs to form a new population", "properties": { "elitist": { "const": true, "default": true, "description": "Use the best designs to form a new population", "title": "Elitist", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "elitist" } ] } }, "title": "MogaReplacementTypeElitist", "type": "object" }, "MogaReplacementTypeRouletteWheel": { "additionalProperties": false, "description": "Replace population", "properties": { "roulette_wheel": { "const": true, "default": true, "description": "Replace population", "title": "Roulette Wheel", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "roulette_wheel" } ] } }, "title": "MogaReplacementTypeRouletteWheel", "type": "object" }, "MogaReplacementTypeUniqueRouletteWheel": { "additionalProperties": false, "description": "Replace population", "properties": { "unique_roulette_wheel": { "const": true, "default": true, "description": "Replace population", "title": "Unique Roulette Wheel", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "unique_roulette_wheel" } ] } }, "title": "MogaReplacementTypeUniqueRouletteWheel", "type": "object" }, "MultiPointBinary": { "additionalProperties": false, "description": "Use bit switching for crossover events", "properties": { "multi_point_binary": { "default": 2, "description": "Use bit switching for crossover events", "exclusiveMinimum": 0, "title": "Multi Point Binary", "type": "integer", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.num_cross_points", "secondary_ir_value_type": "size_t", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "multi_point_binary" } ] } }, "title": "MultiPointBinary", "type": "object" }, "MultiPointParameterizedBinary": { "additionalProperties": false, "description": "Use bit switching to crossover each design variable", "properties": { "multi_point_parameterized_binary": { "default": 2, "description": "Use bit switching to crossover each design variable", "exclusiveMinimum": 0, "title": "Multi Point Parameterized Binary", "type": "integer", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.num_cross_points", "secondary_ir_value_type": "size_t", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "multi_point_parameterized_binary" } ] } }, "title": "MultiPointParameterizedBinary", "type": "object" }, "MultiPointReal": { "additionalProperties": false, "description": "Perform crossover in real valued genome", "properties": { "multi_point_real": { "default": 2, "description": "Perform crossover in real valued genome", "exclusiveMinimum": 0, "title": "Multi Point Real", "type": "integer", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.num_cross_points", "secondary_ir_value_type": "size_t", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "multi_point_real" } ] } }, "title": "MultiPointReal", "type": "object" }, "NichingTypeDistance": { "additionalProperties": false, "description": "Enforce minimum Euclidean distance between designs", "properties": { "distance": { "description": "Enforce minimum Euclidean distance between designs", "items": { "type": "number" }, "title": "Distance", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "distance" } ] } }, "required": [ "distance" ], "title": "NichingTypeDistance", "type": "object" }, "Normal": { "additionalProperties": false, "description": "Level 3 of 5 - default", "properties": { "normal": { "const": true, "default": true, "description": "Level 3 of 5 - default", "title": "Normal", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "NORMAL_OUTPUT" } ] } }, "title": "Normal", "type": "object" }, "OffsetNormalConfig": { "additionalProperties": false, "description": "Set mutation offset to use a normal distribution", "properties": { "mutation_scale": { "default": 0.1, "description": "Scales mutation across range of parameter", "maximum": 1, "minimum": 0, "title": "Mutation Scale", "type": "number", "x-materialization": [ { "ir_key": "method.mutation_scale", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] } }, "title": "OffsetNormalConfig", "type": "object" }, "PostprocessorType": { "additionalProperties": false, "description": "Post process the final solution from ``moga``", "properties": { "orthogonal_distance": { "description": "Get subset of Pareto front based on distance", "items": { "type": "number" }, "title": "Orthogonal Distance", "type": "array", "x-materialization": [ { "ir_key": "method.jega.postprocessor_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.distance_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "distance_postprocessor" } ] } }, "required": [ "orthogonal_distance" ], "title": "PostprocessorType", "type": "object" }, "Quiet": { "additionalProperties": false, "description": "Level 2 of 5 - less than normal", "properties": { "quiet": { "const": true, "default": true, "description": "Level 2 of 5 - less than normal", "title": "Quiet", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "QUIET_OUTPUT" } ] } }, "title": "Quiet", "type": "object" }, "Radial": { "additionalProperties": false, "description": "Set niching distance to percentage of non-dominated range", "properties": { "radial": { "description": "Set niching distance to percentage of non-dominated range", "items": { "type": "number" }, "title": "Radial", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "radial" } ] } }, "required": [ "radial" ], "title": "Radial", "type": "object" }, "ShuffleRandom": { "additionalProperties": false, "description": "Perform crossover by choosing design variable(s)", "properties": { "shuffle_random": { "$ref": "#/$defs/ShuffleRandomConfig", "x-materialization": [ { "ir_key": "method.crossover_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "shuffle_random" } ] } }, "required": [ "shuffle_random" ], "title": "ShuffleRandom", "type": "object" }, "ShuffleRandomConfig": { "additionalProperties": false, "description": "Perform crossover by choosing design variable(s)", "properties": { "num_parents": { "default": 2, "description": "Number of parents in random shuffle crossover", "exclusiveMinimum": 0, "title": "Num Parents", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_parents", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] }, "num_offspring": { "default": 2, "description": "Number of offspring in random shuffle crossover", "exclusiveMinimum": 0, "title": "Num Offspring", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_offspring", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "title": "ShuffleRandomConfig", "type": "object" }, "Silent": { "additionalProperties": false, "description": "Level 1 of 5 - minimum", "properties": { "silent": { "const": true, "default": true, "description": "Level 1 of 5 - minimum", "title": "Silent", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "SILENT_OUTPUT" } ] } }, "title": "Silent", "type": "object" }, "Verbose": { "additionalProperties": false, "description": "Level 4 of 5 - more than normal", "properties": { "verbose": { "const": true, "default": true, "description": "Level 4 of 5 - more than normal", "title": "Verbose", "type": "boolean", "x-materialization": [ { "ir_key": "method.output", "ir_value_type": "short", "storage_type": "PRESENCE_ENUM", "stored_value": "VERBOSE_OUTPUT" } ] } }, "title": "Verbose", "type": "object" } }, "additionalProperties": false }
- Fields:
convergence_type (dakota.spec.method.moga.ConvergenceType | None)crossover_type (dakota.spec.shared.misc.CrossoverType | None)fitness_type (dakota.spec.method.moga.LayerRank | dakota.spec.method.moga.DominationCount | None)mutation_type (dakota.spec.shared.misc.MethodJegaCommonOptsMutationType | None)postprocessor_type (dakota.spec.method.moga.PostprocessorType | None)
- field convergence_tolerance: DakotaFloat = -1.7976931348623157e+308
Stopping criterion based on objective function or statistics convergence
- Constraints:
func = <function _serialize_dakota_float at 0x7f2a3de76700>
return_type = float | str
when_used = json
- field convergence_type: ConvergenceType | None = None
Select the convergence type for JEGA methods
- field crossover_type: CrossoverType | None = None
Select a crossover type for JEGA methods
- field final_solutions: int = 0
Number of designs returned as the best solutions
- Constraints:
ge = 0
- field fitness_type: LayerRank | DominationCount | None = None
Select the fitness type for JEGA methods
- field id_method: str | None = None
Name the method block; helpful when there are multiple
- field initialization_type: MethodJegaCommonOptsInitializationTypeSimpleRandom | MethodJegaCommonOptsInitializationTypeUniqueRandom | MethodJegaCommonOptsInitializationTypeFlatFile [Optional]
Specify how to initialize the population
- field log_file: str = 'JEGAGlobal.log'
Specify the name of a log file
- field max_function_evaluations: int = 9223372036854775807
Number of function evaluations allowed for optimizers
- Constraints:
ge = 0
- field max_iterations: int = 9223372036854775807
Number of iterations allowed for optimizers and adaptive UQ methods
- Constraints:
ge = 0
- field model_pointer: str | None = None
Identifier for model block to be used by a method
- field mutation_type: MethodJegaCommonOptsMutationType | None = None
Select a mutation type for JEGA methods
- field niching_type: Radial | NichingTypeDistance | MaxDesigns | None = None
Specify the type of niching pressure
- field output: Debug | Verbose | Normal | Quiet | Silent [Optional]
Control how much method information is written to the screen and output file
- field population_size: int = 50
Set the initial population size in JEGA methods
- Constraints:
ge = 0
- field postprocessor_type: PostprocessorType | None = None
Post process the final solution from
moga
- field print_each_pop: Literal[True] | None = None
Print every population to a population file
- field replacement_type: MogaReplacementTypeElitist | MogaReplacementTypeRouletteWheel | MogaReplacementTypeUniqueRouletteWheel | BelowLimit | None = None
Select a replacement type for JEGA methods
- field scaling: Literal[True] | None = None
Turn on scaling for variables, responses, and constraints
- field seed: int | None = None
Seed of the random number generator
- Constraints:
gt = 0
Generated Pydantic models for method.moga
- pydantic model dakota.spec.method.moga.BelowLimit
Limit number of designs dominating those kept
Show JSON schema
{ "title": "BelowLimit", "description": "Limit number of designs dominating those kept", "type": "object", "properties": { "below_limit": { "$ref": "#/$defs/BelowLimitConfig", "argument": "threshhold" } }, "$defs": { "BelowLimitConfig": { "additionalProperties": false, "description": "Limit number of designs dominating those kept", "properties": { "threshhold": { "description": "Limit number of designs dominating those kept", "exclusiveMinimum": 0, "title": "Threshhold", "type": "number", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.fitness_limit", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "below_limit" } ] }, "shrinkage_fraction": { "default": 0.9, "description": "Decrease the population size by a percentage", "maximum": 1, "minimum": 0, "title": "Shrinkage Fraction", "type": "number", "x-aliases": [ "shrinkage_percentage" ], "x-materialization": [ { "ir_key": "method.jega.shrinkage_percentage", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "threshhold" ], "title": "BelowLimitConfig", "type": "object" } }, "additionalProperties": false, "required": [ "below_limit" ] }
- field below_limit: BelowLimitConfig [Required]
Limit number of designs dominating those kept
- pydantic model dakota.spec.method.moga.BelowLimitConfig
Limit number of designs dominating those kept
Show JSON schema
{ "title": "BelowLimitConfig", "description": "Limit number of designs dominating those kept", "type": "object", "properties": { "threshhold": { "description": "Limit number of designs dominating those kept", "exclusiveMinimum": 0, "title": "Threshhold", "type": "number", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.fitness_limit", "secondary_ir_value_type": "Real", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "below_limit" } ] }, "shrinkage_fraction": { "default": 0.9, "description": "Decrease the population size by a percentage", "maximum": 1, "minimum": 0, "title": "Shrinkage Fraction", "type": "number", "x-aliases": [ "shrinkage_percentage" ], "x-materialization": [ { "ir_key": "method.jega.shrinkage_percentage", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] } }, "additionalProperties": false, "required": [ "threshhold" ] }
- field shrinkage_fraction: DakotaFloat = 0.9
Decrease the population size by a percentage
- Constraints:
ge = 0
le = 1
func = <function _serialize_dakota_float at 0x7f2a3de76700>
return_type = float | str
when_used = json
- field threshhold: DakotaFloat [Required]
Limit number of designs dominating those kept
- Constraints:
gt = 0
func = <function _serialize_dakota_float at 0x7f2a3de76700>
return_type = float | str
when_used = json
- pydantic model dakota.spec.method.moga.ConvergenceType
Select the convergence type for JEGA methods
Show JSON schema
{ "title": "ConvergenceType", "description": "Select the convergence type for JEGA methods", "type": "object", "properties": { "metric_tracker": { "const": true, "description": "Track changes in the non-dominated frontier", "title": "Metric Tracker", "type": "boolean", "x-materialization": [ { "ir_key": "method.jega.convergence_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "metric_tracker" } ] }, "percent_change": { "default": -1.7976931348623157e+308, "description": "Define the convergence criterion for JEGA methods", "minimum": 0, "title": "Percent Change", "type": "number", "x-materialization": [ { "ir_key": "method.convergence_tolerance", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" }, { "ir_key": "method.jega.percent_change", "ir_value_type": "Real", "storage_type": "DIRECT_VALUE" } ] }, "num_generations": { "default": 15, "description": "Define the convergence criterion for JEGA methods", "minimum": 0, "title": "Num Generations", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_generations", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "additionalProperties": false, "required": [ "metric_tracker" ] }
- field metric_tracker: Literal[True] [Required]
Track changes in the non-dominated frontier
- field num_generations: int = 15
Define the convergence criterion for JEGA methods
- Constraints:
ge = 0
- field percent_change: DakotaFloat = -1.7976931348623157e+308
Define the convergence criterion for JEGA methods
- Constraints:
ge = 0
func = <function _serialize_dakota_float at 0x7f2a3de76700>
return_type = float | str
when_used = json
- pydantic model dakota.spec.method.moga.DominationCount
Rank each member by the number of members that dominate it
Show JSON schema
{ "title": "DominationCount", "description": "Rank each member by the number of members that dominate it", "type": "object", "properties": { "domination_count": { "const": true, "default": true, "description": "Rank each member by the number of members that dominate it", "title": "Domination Count", "type": "boolean", "x-materialization": [ { "ir_key": "method.fitness_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "domination_count" } ] } }, "additionalProperties": false }
- Fields:
- field domination_count: Literal[True] = True
Rank each member by the number of members that dominate it
- pydantic model dakota.spec.method.moga.LayerRank
Assign each member to a layer, based on domination the rank based on layers
Show JSON schema
{ "title": "LayerRank", "description": "Assign each member to a layer, based on domination the rank based on layers", "type": "object", "properties": { "layer_rank": { "const": true, "default": true, "description": "Assign each member to a layer, based on domination the rank based on layers", "title": "Layer Rank", "type": "boolean", "x-materialization": [ { "ir_key": "method.fitness_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "layer_rank" } ] } }, "additionalProperties": false }
- Fields:
- field layer_rank: Literal[True] = True
Assign each member to a layer, based on domination the rank based on layers
- pydantic model dakota.spec.method.moga.MaxDesigns
Limit number of solutions to remain in the population
Show JSON schema
{ "title": "MaxDesigns", "description": "Limit number of solutions to remain in the population", "type": "object", "properties": { "max_designs": { "$ref": "#/$defs/MaxDesignsConfig", "argument": "min_distances" } }, "$defs": { "MaxDesignsConfig": { "additionalProperties": false, "description": "Limit number of solutions to remain in the population", "properties": { "min_distances": { "description": "Limit number of solutions to remain in the population", "items": { "type": "number" }, "title": "Min Distances", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "max_designs" } ] }, "num_designs": { "default": 100, "description": "Limit the number of solutions", "minimum": 2, "title": "Num Designs", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_designs", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "required": [ "min_distances" ], "title": "MaxDesignsConfig", "type": "object" } }, "additionalProperties": false, "required": [ "max_designs" ] }
- field max_designs: MaxDesignsConfig [Required]
Limit number of solutions to remain in the population
- pydantic model dakota.spec.method.moga.MaxDesignsConfig
Limit number of solutions to remain in the population
Show JSON schema
{ "title": "MaxDesignsConfig", "description": "Limit number of solutions to remain in the population", "type": "object", "properties": { "min_distances": { "description": "Limit number of solutions to remain in the population", "items": { "type": "number" }, "title": "Min Distances", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "max_designs" } ] }, "num_designs": { "default": 100, "description": "Limit the number of solutions", "minimum": 2, "title": "Num Designs", "type": "integer", "x-materialization": [ { "ir_key": "method.jega.num_designs", "ir_value_type": "size_t", "storage_type": "DIRECT_VALUE" } ] } }, "additionalProperties": false, "required": [ "min_distances" ] }
- field min_distances: list[DakotaFloat] [Required]
Limit number of solutions to remain in the population
- field num_designs: int = 100
Limit the number of solutions
- Constraints:
ge = 2
- pydantic model dakota.spec.method.moga.MogaReplacementTypeElitist
Use the best designs to form a new population
Show JSON schema
{ "title": "MogaReplacementTypeElitist", "description": "Use the best designs to form a new population", "type": "object", "properties": { "elitist": { "const": true, "default": true, "description": "Use the best designs to form a new population", "title": "Elitist", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "elitist" } ] } }, "additionalProperties": false }
- Fields:
- field elitist: Literal[True] = True
Use the best designs to form a new population
- pydantic model dakota.spec.method.moga.MogaReplacementTypeRouletteWheel
Replace population
Show JSON schema
{ "title": "MogaReplacementTypeRouletteWheel", "description": "Replace population", "type": "object", "properties": { "roulette_wheel": { "const": true, "default": true, "description": "Replace population", "title": "Roulette Wheel", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "roulette_wheel" } ] } }, "additionalProperties": false }
- Fields:
- field roulette_wheel: Literal[True] = True
Replace population
- pydantic model dakota.spec.method.moga.MogaReplacementTypeUniqueRouletteWheel
Replace population
Show JSON schema
{ "title": "MogaReplacementTypeUniqueRouletteWheel", "description": "Replace population", "type": "object", "properties": { "unique_roulette_wheel": { "const": true, "default": true, "description": "Replace population", "title": "Unique Roulette Wheel", "type": "boolean", "x-materialization": [ { "ir_key": "method.replacement_type", "ir_value_type": "String", "storage_type": "PRESENCE_LITERAL", "stored_value": "unique_roulette_wheel" } ] } }, "additionalProperties": false }
- field unique_roulette_wheel: Literal[True] = True
Replace population
- pydantic model dakota.spec.method.moga.NichingTypeDistance
Enforce minimum Euclidean distance between designs
Show JSON schema
{ "title": "NichingTypeDistance", "description": "Enforce minimum Euclidean distance between designs", "type": "object", "properties": { "distance": { "description": "Enforce minimum Euclidean distance between designs", "items": { "type": "number" }, "title": "Distance", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "distance" } ] } }, "additionalProperties": false, "required": [ "distance" ] }
- Fields:
- field distance: list[DakotaFloat] [Required]
Enforce minimum Euclidean distance between designs
- pydantic model dakota.spec.method.moga.PostprocessorType
Post process the final solution from
mogaShow JSON schema
{ "title": "PostprocessorType", "description": "Post process the final solution from ``moga``", "type": "object", "properties": { "orthogonal_distance": { "description": "Get subset of Pareto front based on distance", "items": { "type": "number" }, "title": "Orthogonal Distance", "type": "array", "x-materialization": [ { "ir_key": "method.jega.postprocessor_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.distance_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "distance_postprocessor" } ] } }, "additionalProperties": false, "required": [ "orthogonal_distance" ] }
- field orthogonal_distance: list[DakotaFloat] [Required]
Get subset of Pareto front based on distance
- pydantic model dakota.spec.method.moga.Radial
Set niching distance to percentage of non-dominated range
Show JSON schema
{ "title": "Radial", "description": "Set niching distance to percentage of non-dominated range", "type": "object", "properties": { "radial": { "description": "Set niching distance to percentage of non-dominated range", "items": { "type": "number" }, "title": "Radial", "type": "array", "x-materialization": [ { "ir_key": "method.jega.niching_type", "ir_value_type": "String", "secondary_ir_key": "method.jega.niche_vector", "secondary_ir_value_type": "RealVector", "storage_type": "TYPE_DATA_COMBINED", "stored_value": "radial" } ] } }, "additionalProperties": false, "required": [ "radial" ] }
- Fields:
- field radial: list[DakotaFloat] [Required]
Set niching distance to percentage of non-dominated range

