moga

pydantic model dakota.spec.method.moga.MogaSelection

Generated model for MogaSelection

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

Fields:
field moga: MogaConfig [Required]
classmethod get_registry() dict[str, type[MethodSelection]]

Get registry, performing deferred registration on first call

classmethod get_union()

Generate Union from all registered selections

pydantic model dakota.spec.method.moga.MogaConfig

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

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

Fields:
field convergence_tolerance: DakotaFloat = -1.7976931348623157e+308

Stopping criterion based on objective function or statistics convergence

Constraints:
  • func = <function _serialize_dakota_float at 0x7f2a3de76700>

  • return_type = float | str

  • when_used = json

field convergence_type: ConvergenceType | None = None

Select the convergence type for JEGA methods

field crossover_type: CrossoverType | None = None

Select a crossover type for JEGA methods

field final_solutions: int = 0

Number of designs returned as the best solutions

Constraints:
  • ge = 0

field fitness_type: LayerRank | DominationCount | None = None

Select the fitness type for JEGA methods

field id_method: str | None = None

Name the method block; helpful when there are multiple

field initialization_type: MethodJegaCommonOptsInitializationTypeSimpleRandom | MethodJegaCommonOptsInitializationTypeUniqueRandom | MethodJegaCommonOptsInitializationTypeFlatFile [Optional]

Specify how to initialize the population

field log_file: str = 'JEGAGlobal.log'

Specify the name of a log file

field max_function_evaluations: int = 9223372036854775807

Number of function evaluations allowed for optimizers

Constraints:
  • ge = 0

field max_iterations: int = 9223372036854775807

Number of iterations allowed for optimizers and adaptive UQ methods

Constraints:
  • ge = 0

field model_pointer: str | None = None

Identifier for model block to be used by a method

field mutation_type: MethodJegaCommonOptsMutationType | None = None

Select a mutation type for JEGA methods

field niching_type: Radial | NichingTypeDistance | MaxDesigns | None = None

Specify the type of niching pressure

field output: Debug | Verbose | Normal | Quiet | Silent [Optional]

Control how much method information is written to the screen and output file

field population_size: int = 50

Set the initial population size in JEGA methods

Constraints:
  • ge = 0

field postprocessor_type: PostprocessorType | None = None

Post process the final solution from moga

field print_each_pop: Literal[True] | None = None

Print every population to a population file

field replacement_type: MogaReplacementTypeElitist | MogaReplacementTypeRouletteWheel | MogaReplacementTypeUniqueRouletteWheel | BelowLimit | None = None

Select a replacement type for JEGA methods

field scaling: Literal[True] | None = None

Turn on scaling for variables, responses, and constraints

field seed: int | None = None

Seed of the random number generator

Constraints:
  • gt = 0

Generated Pydantic models for method.moga

pydantic model dakota.spec.method.moga.BelowLimit

Limit number of designs dominating those kept

Show JSON schema
{
   "title": "BelowLimit",
   "description": "Limit number of designs dominating those kept",
   "type": "object",
   "properties": {
      "below_limit": {
         "$ref": "#/$defs/BelowLimitConfig",
         "argument": "threshhold"
      }
   },
   "$defs": {
      "BelowLimitConfig": {
         "additionalProperties": false,
         "description": "Limit number of designs dominating those kept",
         "properties": {
            "threshhold": {
               "description": "Limit number of designs dominating those kept",
               "exclusiveMinimum": 0,
               "title": "Threshhold",
               "type": "number",
               "x-materialization": [
                  {
                     "ir_key": "method.replacement_type",
                     "ir_value_type": "String",
                     "secondary_ir_key": "method.jega.fitness_limit",
                     "secondary_ir_value_type": "Real",
                     "storage_type": "TYPE_DATA_COMBINED",
                     "stored_value": "below_limit"
                  }
               ]
            },
            "shrinkage_fraction": {
               "default": 0.9,
               "description": "Decrease the population size by a percentage",
               "maximum": 1,
               "minimum": 0,
               "title": "Shrinkage Fraction",
               "type": "number",
               "x-aliases": [
                  "shrinkage_percentage"
               ],
               "x-materialization": [
                  {
                     "ir_key": "method.jega.shrinkage_percentage",
                     "ir_value_type": "Real",
                     "storage_type": "DIRECT_VALUE"
                  }
               ]
            }
         },
         "required": [
            "threshhold"
         ],
         "title": "BelowLimitConfig",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "below_limit"
   ]
}

Fields:
field below_limit: BelowLimitConfig [Required]

Limit number of designs dominating those kept

pydantic model dakota.spec.method.moga.BelowLimitConfig

Limit number of designs dominating those kept

Show JSON schema
{
   "title": "BelowLimitConfig",
   "description": "Limit number of designs dominating those kept",
   "type": "object",
   "properties": {
      "threshhold": {
         "description": "Limit number of designs dominating those kept",
         "exclusiveMinimum": 0,
         "title": "Threshhold",
         "type": "number",
         "x-materialization": [
            {
               "ir_key": "method.replacement_type",
               "ir_value_type": "String",
               "secondary_ir_key": "method.jega.fitness_limit",
               "secondary_ir_value_type": "Real",
               "storage_type": "TYPE_DATA_COMBINED",
               "stored_value": "below_limit"
            }
         ]
      },
      "shrinkage_fraction": {
         "default": 0.9,
         "description": "Decrease the population size by a percentage",
         "maximum": 1,
         "minimum": 0,
         "title": "Shrinkage Fraction",
         "type": "number",
         "x-aliases": [
            "shrinkage_percentage"
         ],
         "x-materialization": [
            {
               "ir_key": "method.jega.shrinkage_percentage",
               "ir_value_type": "Real",
               "storage_type": "DIRECT_VALUE"
            }
         ]
      }
   },
   "additionalProperties": false,
   "required": [
      "threshhold"
   ]
}

Fields:
field shrinkage_fraction: DakotaFloat = 0.9

Decrease the population size by a percentage

Constraints:
  • ge = 0

  • le = 1

  • func = <function _serialize_dakota_float at 0x7f2a3de76700>

  • return_type = float | str

  • when_used = json

field threshhold: DakotaFloat [Required]

Limit number of designs dominating those kept

Constraints:
  • gt = 0

  • func = <function _serialize_dakota_float at 0x7f2a3de76700>

  • return_type = float | str

  • when_used = json

pydantic model dakota.spec.method.moga.ConvergenceType

Select the convergence type for JEGA methods

Show JSON schema
{
   "title": "ConvergenceType",
   "description": "Select the convergence type for JEGA methods",
   "type": "object",
   "properties": {
      "metric_tracker": {
         "const": true,
         "description": "Track changes in the non-dominated frontier",
         "title": "Metric Tracker",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.jega.convergence_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "metric_tracker"
            }
         ]
      },
      "percent_change": {
         "default": -1.7976931348623157e+308,
         "description": "Define the convergence criterion for JEGA methods",
         "minimum": 0,
         "title": "Percent Change",
         "type": "number",
         "x-materialization": [
            {
               "ir_key": "method.convergence_tolerance",
               "ir_value_type": "Real",
               "storage_type": "DIRECT_VALUE"
            },
            {
               "ir_key": "method.jega.percent_change",
               "ir_value_type": "Real",
               "storage_type": "DIRECT_VALUE"
            }
         ]
      },
      "num_generations": {
         "default": 15,
         "description": "Define the convergence criterion for JEGA methods",
         "minimum": 0,
         "title": "Num Generations",
         "type": "integer",
         "x-materialization": [
            {
               "ir_key": "method.jega.num_generations",
               "ir_value_type": "size_t",
               "storage_type": "DIRECT_VALUE"
            }
         ]
      }
   },
   "additionalProperties": false,
   "required": [
      "metric_tracker"
   ]
}

Fields:
field metric_tracker: Literal[True] [Required]

Track changes in the non-dominated frontier

field num_generations: int = 15

Define the convergence criterion for JEGA methods

Constraints:
  • ge = 0

field percent_change: DakotaFloat = -1.7976931348623157e+308

Define the convergence criterion for JEGA methods

Constraints:
  • ge = 0

  • func = <function _serialize_dakota_float at 0x7f2a3de76700>

  • return_type = float | str

  • when_used = json

pydantic model dakota.spec.method.moga.DominationCount

Rank each member by the number of members that dominate it

Show JSON schema
{
   "title": "DominationCount",
   "description": "Rank each member by the number of members that dominate it",
   "type": "object",
   "properties": {
      "domination_count": {
         "const": true,
         "default": true,
         "description": "Rank each member by the number of members that dominate it",
         "title": "Domination Count",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.fitness_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "domination_count"
            }
         ]
      }
   },
   "additionalProperties": false
}

Fields:
field domination_count: Literal[True] = True

Rank each member by the number of members that dominate it

pydantic model dakota.spec.method.moga.LayerRank

Assign each member to a layer, based on domination the rank based on layers

Show JSON schema
{
   "title": "LayerRank",
   "description": "Assign each member to a layer, based on domination the rank based on layers",
   "type": "object",
   "properties": {
      "layer_rank": {
         "const": true,
         "default": true,
         "description": "Assign each member to a layer, based on domination the rank based on layers",
         "title": "Layer Rank",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.fitness_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "layer_rank"
            }
         ]
      }
   },
   "additionalProperties": false
}

Fields:
field layer_rank: Literal[True] = True

Assign each member to a layer, based on domination the rank based on layers

pydantic model dakota.spec.method.moga.MaxDesigns

Limit number of solutions to remain in the population

Show JSON schema
{
   "title": "MaxDesigns",
   "description": "Limit number of solutions to remain in the population",
   "type": "object",
   "properties": {
      "max_designs": {
         "$ref": "#/$defs/MaxDesignsConfig",
         "argument": "min_distances"
      }
   },
   "$defs": {
      "MaxDesignsConfig": {
         "additionalProperties": false,
         "description": "Limit number of solutions to remain in the population",
         "properties": {
            "min_distances": {
               "description": "Limit number of solutions to remain in the population",
               "items": {
                  "type": "number"
               },
               "title": "Min Distances",
               "type": "array",
               "x-materialization": [
                  {
                     "ir_key": "method.jega.niching_type",
                     "ir_value_type": "String",
                     "secondary_ir_key": "method.jega.niche_vector",
                     "secondary_ir_value_type": "RealVector",
                     "storage_type": "TYPE_DATA_COMBINED",
                     "stored_value": "max_designs"
                  }
               ]
            },
            "num_designs": {
               "default": 100,
               "description": "Limit the number of solutions",
               "minimum": 2,
               "title": "Num Designs",
               "type": "integer",
               "x-materialization": [
                  {
                     "ir_key": "method.jega.num_designs",
                     "ir_value_type": "size_t",
                     "storage_type": "DIRECT_VALUE"
                  }
               ]
            }
         },
         "required": [
            "min_distances"
         ],
         "title": "MaxDesignsConfig",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "max_designs"
   ]
}

Fields:
field max_designs: MaxDesignsConfig [Required]

Limit number of solutions to remain in the population

pydantic model dakota.spec.method.moga.MaxDesignsConfig

Limit number of solutions to remain in the population

Show JSON schema
{
   "title": "MaxDesignsConfig",
   "description": "Limit number of solutions to remain in the population",
   "type": "object",
   "properties": {
      "min_distances": {
         "description": "Limit number of solutions to remain in the population",
         "items": {
            "type": "number"
         },
         "title": "Min Distances",
         "type": "array",
         "x-materialization": [
            {
               "ir_key": "method.jega.niching_type",
               "ir_value_type": "String",
               "secondary_ir_key": "method.jega.niche_vector",
               "secondary_ir_value_type": "RealVector",
               "storage_type": "TYPE_DATA_COMBINED",
               "stored_value": "max_designs"
            }
         ]
      },
      "num_designs": {
         "default": 100,
         "description": "Limit the number of solutions",
         "minimum": 2,
         "title": "Num Designs",
         "type": "integer",
         "x-materialization": [
            {
               "ir_key": "method.jega.num_designs",
               "ir_value_type": "size_t",
               "storage_type": "DIRECT_VALUE"
            }
         ]
      }
   },
   "additionalProperties": false,
   "required": [
      "min_distances"
   ]
}

Fields:
field min_distances: list[DakotaFloat] [Required]

Limit number of solutions to remain in the population

field num_designs: int = 100

Limit the number of solutions

Constraints:
  • ge = 2

pydantic model dakota.spec.method.moga.MogaReplacementTypeElitist

Use the best designs to form a new population

Show JSON schema
{
   "title": "MogaReplacementTypeElitist",
   "description": "Use the best designs to form a new population",
   "type": "object",
   "properties": {
      "elitist": {
         "const": true,
         "default": true,
         "description": "Use the best designs to form a new population",
         "title": "Elitist",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.replacement_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "elitist"
            }
         ]
      }
   },
   "additionalProperties": false
}

Fields:
field elitist: Literal[True] = True

Use the best designs to form a new population

pydantic model dakota.spec.method.moga.MogaReplacementTypeRouletteWheel

Replace population

Show JSON schema
{
   "title": "MogaReplacementTypeRouletteWheel",
   "description": "Replace population",
   "type": "object",
   "properties": {
      "roulette_wheel": {
         "const": true,
         "default": true,
         "description": "Replace population",
         "title": "Roulette Wheel",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.replacement_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "roulette_wheel"
            }
         ]
      }
   },
   "additionalProperties": false
}

Fields:
field roulette_wheel: Literal[True] = True

Replace population

pydantic model dakota.spec.method.moga.MogaReplacementTypeUniqueRouletteWheel

Replace population

Show JSON schema
{
   "title": "MogaReplacementTypeUniqueRouletteWheel",
   "description": "Replace population",
   "type": "object",
   "properties": {
      "unique_roulette_wheel": {
         "const": true,
         "default": true,
         "description": "Replace population",
         "title": "Unique Roulette Wheel",
         "type": "boolean",
         "x-materialization": [
            {
               "ir_key": "method.replacement_type",
               "ir_value_type": "String",
               "storage_type": "PRESENCE_LITERAL",
               "stored_value": "unique_roulette_wheel"
            }
         ]
      }
   },
   "additionalProperties": false
}

Fields:
field unique_roulette_wheel: Literal[True] = True

Replace population

pydantic model dakota.spec.method.moga.NichingTypeDistance

Enforce minimum Euclidean distance between designs

Show JSON schema
{
   "title": "NichingTypeDistance",
   "description": "Enforce minimum Euclidean distance between designs",
   "type": "object",
   "properties": {
      "distance": {
         "description": "Enforce minimum Euclidean distance between designs",
         "items": {
            "type": "number"
         },
         "title": "Distance",
         "type": "array",
         "x-materialization": [
            {
               "ir_key": "method.jega.niching_type",
               "ir_value_type": "String",
               "secondary_ir_key": "method.jega.niche_vector",
               "secondary_ir_value_type": "RealVector",
               "storage_type": "TYPE_DATA_COMBINED",
               "stored_value": "distance"
            }
         ]
      }
   },
   "additionalProperties": false,
   "required": [
      "distance"
   ]
}

Fields:
field distance: list[DakotaFloat] [Required]

Enforce minimum Euclidean distance between designs

pydantic model dakota.spec.method.moga.PostprocessorType

Post process the final solution from moga

Show JSON schema
{
   "title": "PostprocessorType",
   "description": "Post process the final solution from ``moga``",
   "type": "object",
   "properties": {
      "orthogonal_distance": {
         "description": "Get subset of Pareto front based on distance",
         "items": {
            "type": "number"
         },
         "title": "Orthogonal Distance",
         "type": "array",
         "x-materialization": [
            {
               "ir_key": "method.jega.postprocessor_type",
               "ir_value_type": "String",
               "secondary_ir_key": "method.jega.distance_vector",
               "secondary_ir_value_type": "RealVector",
               "storage_type": "TYPE_DATA_COMBINED",
               "stored_value": "distance_postprocessor"
            }
         ]
      }
   },
   "additionalProperties": false,
   "required": [
      "orthogonal_distance"
   ]
}

Fields:
field orthogonal_distance: list[DakotaFloat] [Required]

Get subset of Pareto front based on distance

pydantic model dakota.spec.method.moga.Radial

Set niching distance to percentage of non-dominated range

Show JSON schema
{
   "title": "Radial",
   "description": "Set niching distance to percentage of non-dominated range",
   "type": "object",
   "properties": {
      "radial": {
         "description": "Set niching distance to percentage of non-dominated range",
         "items": {
            "type": "number"
         },
         "title": "Radial",
         "type": "array",
         "x-materialization": [
            {
               "ir_key": "method.jega.niching_type",
               "ir_value_type": "String",
               "secondary_ir_key": "method.jega.niche_vector",
               "secondary_ir_value_type": "RealVector",
               "storage_type": "TYPE_DATA_COMBINED",
               "stored_value": "radial"
            }
         ]
      }
   },
   "additionalProperties": false,
   "required": [
      "radial"
   ]
}

Fields:
field radial: list[DakotaFloat] [Required]

Set niching distance to percentage of non-dominated range