soga

pydantic model dakota.spec.method.soga.SogaSelection

Generated model for SogaSelection

Show JSON schema
{
   "title": "SogaSelection",
   "description": "Generated model for SogaSelection",
   "type": "object",
   "properties": {
      "soga": {
         "$ref": "#/$defs/SogaConfig",
         "x-materialization": [
            {
               "ir_key": "method.algorithm",
               "ir_value_type": "unsigned short",
               "storage_type": "PRESENCE_ENUM",
               "stored_value": "SOGA"
            }
         ]
      }
   },
   "$defs": {
      "AverageFitnessTracker": {
         "additionalProperties": false,
         "description": "Tracks the average fitness of the population",
         "properties": {
            "average_fitness_tracker": {
               "$ref": "#/$defs/AverageFitnessTrackerConfig",
               "x-materialization": [
                  {
                     "ir_key": "method.jega.convergence_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "average_fitness_tracker"
                  }
               ]
            }
         },
         "required": [
            "average_fitness_tracker"
         ],
         "title": "AverageFitnessTracker",
         "type": "object"
      },
      "AverageFitnessTrackerConfig": {
         "additionalProperties": false,
         "description": "Tracks the average fitness of the population",
         "properties": {
            "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"
                  }
               ]
            }
         },
         "title": "AverageFitnessTrackerConfig",
         "type": "object"
      },
      "BestFitnessTracker": {
         "additionalProperties": false,
         "description": "Tracks the best fitness of the population",
         "properties": {
            "best_fitness_tracker": {
               "$ref": "#/$defs/BestFitnessTrackerConfig",
               "x-materialization": [
                  {
                     "ir_key": "method.jega.convergence_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "best_fitness_tracker"
                  }
               ]
            }
         },
         "required": [
            "best_fitness_tracker"
         ],
         "title": "BestFitnessTracker",
         "type": "object"
      },
      "BestFitnessTrackerConfig": {
         "additionalProperties": false,
         "description": "Tracks the best fitness of the population",
         "properties": {
            "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"
                  }
               ]
            }
         },
         "title": "BestFitnessTrackerConfig",
         "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"
      },
      "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"
      },
      "FavorFeasible": {
         "additionalProperties": false,
         "description": "Prioritize feasible designs",
         "properties": {
            "favor_feasible": {
               "const": true,
               "default": true,
               "description": "Prioritize feasible designs",
               "title": "Favor Feasible",
               "type": "boolean",
               "x-materialization": [
                  {
                     "ir_key": "method.replacement_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "favor_feasible"
                  }
               ]
            }
         },
         "title": "FavorFeasible",
         "type": "object"
      },
      "FitnessType": {
         "additionalProperties": false,
         "description": "Select the fitness type for JEGA methods",
         "properties": {
            "merit_function": {
               "const": true,
               "description": "Balance goals of reducing objective function and satisfying constraints",
               "title": "Merit Function",
               "type": "boolean",
               "x-materialization": [
                  {
                     "ir_key": "method.fitness_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "merit_function"
                  }
               ]
            },
            "constraint_penalty": {
               "default": 0.0,
               "description": "Multiplier for the penalty function",
               "exclusiveMinimum": 0,
               "title": "Constraint Penalty",
               "type": "number",
               "x-materialization": [
                  {
                     "ir_key": "method.constraint_tolerance",
                     "ir_value_type": "Real",
                     "storage_type": "DIRECT_VALUE"
                  }
               ]
            }
         },
         "required": [
            "merit_function"
         ],
         "title": "FitnessType",
         "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "SogaConfig": {
         "additionalProperties": false,
         "description": "Single-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/FitnessType"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Select the fitness type for JEGA methods"
            },
            "replacement_type": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/SogaReplacementTypeElitist"
                  },
                  {
                     "$ref": "#/$defs/FavorFeasible"
                  },
                  {
                     "$ref": "#/$defs/SogaReplacementTypeRouletteWheel"
                  },
                  {
                     "$ref": "#/$defs/SogaReplacementTypeUniqueRouletteWheel"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Select a replacement type for JEGA methods",
               "title": "Replacement Type",
               "x-union-pattern": 2
            },
            "convergence_type": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/BestFitnessTracker"
                  },
                  {
                     "$ref": "#/$defs/AverageFitnessTracker"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Select the convergence type for JEGA methods",
               "title": "Convergence Type",
               "x-union-pattern": 2
            }
         },
         "title": "SogaConfig",
         "type": "object"
      },
      "SogaReplacementTypeElitist": {
         "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": "SogaReplacementTypeElitist",
         "type": "object"
      },
      "SogaReplacementTypeRouletteWheel": {
         "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": "SogaReplacementTypeRouletteWheel",
         "type": "object"
      },
      "SogaReplacementTypeUniqueRouletteWheel": {
         "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": "SogaReplacementTypeUniqueRouletteWheel",
         "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": [
      "soga"
   ]
}

Fields:
field soga: SogaConfig [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.soga.SogaConfig

Single-objective Genetic Algorithm (a.k.a Evolutionary Algorithm)

Show JSON schema
{
   "title": "SogaConfig",
   "description": "Single-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/FitnessType"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Select the fitness type for JEGA methods"
      },
      "replacement_type": {
         "anyOf": [
            {
               "$ref": "#/$defs/SogaReplacementTypeElitist"
            },
            {
               "$ref": "#/$defs/FavorFeasible"
            },
            {
               "$ref": "#/$defs/SogaReplacementTypeRouletteWheel"
            },
            {
               "$ref": "#/$defs/SogaReplacementTypeUniqueRouletteWheel"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Select a replacement type for JEGA methods",
         "title": "Replacement Type",
         "x-union-pattern": 2
      },
      "convergence_type": {
         "anyOf": [
            {
               "$ref": "#/$defs/BestFitnessTracker"
            },
            {
               "$ref": "#/$defs/AverageFitnessTracker"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Select the convergence type for JEGA methods",
         "title": "Convergence Type",
         "x-union-pattern": 2
      }
   },
   "$defs": {
      "AverageFitnessTracker": {
         "additionalProperties": false,
         "description": "Tracks the average fitness of the population",
         "properties": {
            "average_fitness_tracker": {
               "$ref": "#/$defs/AverageFitnessTrackerConfig",
               "x-materialization": [
                  {
                     "ir_key": "method.jega.convergence_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "average_fitness_tracker"
                  }
               ]
            }
         },
         "required": [
            "average_fitness_tracker"
         ],
         "title": "AverageFitnessTracker",
         "type": "object"
      },
      "AverageFitnessTrackerConfig": {
         "additionalProperties": false,
         "description": "Tracks the average fitness of the population",
         "properties": {
            "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"
                  }
               ]
            }
         },
         "title": "AverageFitnessTrackerConfig",
         "type": "object"
      },
      "BestFitnessTracker": {
         "additionalProperties": false,
         "description": "Tracks the best fitness of the population",
         "properties": {
            "best_fitness_tracker": {
               "$ref": "#/$defs/BestFitnessTrackerConfig",
               "x-materialization": [
                  {
                     "ir_key": "method.jega.convergence_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "best_fitness_tracker"
                  }
               ]
            }
         },
         "required": [
            "best_fitness_tracker"
         ],
         "title": "BestFitnessTracker",
         "type": "object"
      },
      "BestFitnessTrackerConfig": {
         "additionalProperties": false,
         "description": "Tracks the best fitness of the population",
         "properties": {
            "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"
                  }
               ]
            }
         },
         "title": "BestFitnessTrackerConfig",
         "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"
      },
      "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"
      },
      "FavorFeasible": {
         "additionalProperties": false,
         "description": "Prioritize feasible designs",
         "properties": {
            "favor_feasible": {
               "const": true,
               "default": true,
               "description": "Prioritize feasible designs",
               "title": "Favor Feasible",
               "type": "boolean",
               "x-materialization": [
                  {
                     "ir_key": "method.replacement_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "favor_feasible"
                  }
               ]
            }
         },
         "title": "FavorFeasible",
         "type": "object"
      },
      "FitnessType": {
         "additionalProperties": false,
         "description": "Select the fitness type for JEGA methods",
         "properties": {
            "merit_function": {
               "const": true,
               "description": "Balance goals of reducing objective function and satisfying constraints",
               "title": "Merit Function",
               "type": "boolean",
               "x-materialization": [
                  {
                     "ir_key": "method.fitness_type",
                     "ir_value_type": "String",
                     "storage_type": "PRESENCE_LITERAL",
                     "stored_value": "merit_function"
                  }
               ]
            },
            "constraint_penalty": {
               "default": 0.0,
               "description": "Multiplier for the penalty function",
               "exclusiveMinimum": 0,
               "title": "Constraint Penalty",
               "type": "number",
               "x-materialization": [
                  {
                     "ir_key": "method.constraint_tolerance",
                     "ir_value_type": "Real",
                     "storage_type": "DIRECT_VALUE"
                  }
               ]
            }
         },
         "required": [
            "merit_function"
         ],
         "title": "FitnessType",
         "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "SogaReplacementTypeElitist": {
         "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": "SogaReplacementTypeElitist",
         "type": "object"
      },
      "SogaReplacementTypeRouletteWheel": {
         "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": "SogaReplacementTypeRouletteWheel",
         "type": "object"
      },
      "SogaReplacementTypeUniqueRouletteWheel": {
         "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": "SogaReplacementTypeUniqueRouletteWheel",
         "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:
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: BestFitnessTracker | AverageFitnessTracker | 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: FitnessType | 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 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 print_each_pop: Literal[True] | None = None

Print every population to a population file

field replacement_type: SogaReplacementTypeElitist | FavorFeasible | SogaReplacementTypeRouletteWheel | SogaReplacementTypeUniqueRouletteWheel | 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.soga

pydantic model dakota.spec.method.soga.AverageFitnessTracker

Tracks the average fitness of the population

Show JSON schema
{
   "title": "AverageFitnessTracker",
   "description": "Tracks the average fitness of the population",
   "type": "object",
   "properties": {
      "average_fitness_tracker": {
         "$ref": "#/$defs/AverageFitnessTrackerConfig",
         "x-materialization": [
            {
               "ir_key": "method.jega.convergence_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "average_fitness_tracker"
            }
         ]
      }
   },
   "$defs": {
      "AverageFitnessTrackerConfig": {
         "additionalProperties": false,
         "description": "Tracks the average fitness of the population",
         "properties": {
            "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"
                  }
               ]
            }
         },
         "title": "AverageFitnessTrackerConfig",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "average_fitness_tracker"
   ]
}

Fields:
field average_fitness_tracker: AverageFitnessTrackerConfig [Required]

Tracks the average fitness of the population

pydantic model dakota.spec.method.soga.AverageFitnessTrackerConfig

Tracks the average fitness of the population

Show JSON schema
{
   "title": "AverageFitnessTrackerConfig",
   "description": "Tracks the average fitness of the population",
   "type": "object",
   "properties": {
      "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
}

Fields:
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.soga.BestFitnessTracker

Tracks the best fitness of the population

Show JSON schema
{
   "title": "BestFitnessTracker",
   "description": "Tracks the best fitness of the population",
   "type": "object",
   "properties": {
      "best_fitness_tracker": {
         "$ref": "#/$defs/BestFitnessTrackerConfig",
         "x-materialization": [
            {
               "ir_key": "method.jega.convergence_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "best_fitness_tracker"
            }
         ]
      }
   },
   "$defs": {
      "BestFitnessTrackerConfig": {
         "additionalProperties": false,
         "description": "Tracks the best fitness of the population",
         "properties": {
            "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"
                  }
               ]
            }
         },
         "title": "BestFitnessTrackerConfig",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "best_fitness_tracker"
   ]
}

Fields:
field best_fitness_tracker: BestFitnessTrackerConfig [Required]

Tracks the best fitness of the population

pydantic model dakota.spec.method.soga.BestFitnessTrackerConfig

Tracks the best fitness of the population

Show JSON schema
{
   "title": "BestFitnessTrackerConfig",
   "description": "Tracks the best fitness of the population",
   "type": "object",
   "properties": {
      "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
}

Fields:
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.soga.FavorFeasible

Prioritize feasible designs

Show JSON schema
{
   "title": "FavorFeasible",
   "description": "Prioritize feasible designs",
   "type": "object",
   "properties": {
      "favor_feasible": {
         "const": true,
         "default": true,
         "description": "Prioritize feasible designs",
         "title": "Favor Feasible",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.replacement_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "favor_feasible"
            }
         ]
      }
   },
   "additionalProperties": false
}

Fields:
field favor_feasible: Literal[True] = True

Prioritize feasible designs

pydantic model dakota.spec.method.soga.FitnessType

Select the fitness type for JEGA methods

Show JSON schema
{
   "title": "FitnessType",
   "description": "Select the fitness type for JEGA methods",
   "type": "object",
   "properties": {
      "merit_function": {
         "const": true,
         "description": "Balance goals of reducing objective function and satisfying constraints",
         "title": "Merit Function",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.fitness_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "merit_function"
            }
         ]
      },
      "constraint_penalty": {
         "default": 0.0,
         "description": "Multiplier for the penalty function",
         "exclusiveMinimum": 0,
         "title": "Constraint Penalty",
         "type": "number",
         "x-materialization": [
            {
               "ir_key": "method.constraint_tolerance",
               "ir_value_type": "Real",
               "storage_type": "DIRECT_VALUE"
            }
         ]
      }
   },
   "additionalProperties": false,
   "required": [
      "merit_function"
   ]
}

Fields:
field constraint_penalty: DakotaFloat = 0.0

Multiplier for the penalty function

Constraints:
  • gt = 0

  • func = <function _serialize_dakota_float at 0x7f2a3de76700>

  • return_type = float | str

  • when_used = json

field merit_function: Literal[True] [Required]

Balance goals of reducing objective function and satisfying constraints

pydantic model dakota.spec.method.soga.SogaReplacementTypeElitist

Use the best designs to form a new population

Show JSON schema
{
   "title": "SogaReplacementTypeElitist",
   "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.soga.SogaReplacementTypeRouletteWheel

Replace population

Show JSON schema
{
   "title": "SogaReplacementTypeRouletteWheel",
   "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.soga.SogaReplacementTypeUniqueRouletteWheel

Replace population

Show JSON schema
{
   "title": "SogaReplacementTypeUniqueRouletteWheel",
   "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
}

Fields:
field unique_roulette_wheel: Literal[True] = True

Replace population