public ElitismOpr(OptimisationTemplate Template, GAParameters gaParameters, Population.Population parentPopulation, Population.Population childPopulation) { this.Template = Template; this.gaParameters = gaParameters; this.parentPopulation = parentPopulation; this.childPopulation = childPopulation; }
public SingleObjectivePopulation(OptimisationTemplate Template, GAParameters gaParameters, int populationSize, bool empty) : base(Template, gaParameters, populationSize) { //initialising population chromosomes chromosomes = new SingleObjectiveChromosome[populationSize]; for (int i = 0; i < Size; i++) { chromosomes[i] = new SingleObjectiveChromosome(Template, gaParameters, empty); } //initialising best chromosome bestChromosome = new SingleObjectiveChromosome(Template, gaParameters, true); }
public MultiObjectivePopulation(OptimisationTemplate Template, GAParameters gaParameters, int populationSize, bool empty) : base(Template, gaParameters, populationSize) { //initialising population chromosomes chromosomes = new MultiObjectiveChromosome[size]; for (int i = 0; i < size; i++) { chromosomes[i] = new MultiObjectiveChromosome(Template, gaParameters, empty); } //initialising the seven statistics variables int noOfObjectives = Template.Objectives.Count; bestObjectives = new double[noOfObjectives]; worstObjectives = new double[noOfObjectives]; averageObjectives = new double[noOfObjectives]; maximumFitnesses = new double[noOfObjectives]; minimumFitnesses = new double[noOfObjectives]; averageFitnesses = new double[noOfObjectives]; fitnessVariances = new double[noOfObjectives]; }
public Chromosome(OptimisationTemplate Template, GAParameters gaParameters, bool empty) { this.Template = Template; this.gaParameters = gaParameters; int noOfDesignVariables = Template.DesignVariables.Count; genes = new double[noOfDesignVariables]; for (int i = 0; i < noOfDesignVariables; i++) { if (Template.DesignVariables[i].Type == DesignVariableType.Integer) { if (!empty) { genes[i] = GARandom.BoundedRandomInteger((int)Template.DesignVariables[i].LowerBound, (int)Template.DesignVariables[i].UpperBound); } else { genes[i] = 0.0; } } if (Template.DesignVariables[i].Type == DesignVariableType.Double) { if (!empty) { genes[i] = GARandom.BoundedRandomDouble(Template.DesignVariables[i].LowerBound, Template.DesignVariables[i].UpperBound); } else { genes[i] = 0.0; } } } constraintValues = new double[Template.Constraints.Count]; constraintViolationValues = new double[Template.Constraints.Count]; }
public RobustOptimisationStudy(string name, Treatment treatment, ExecutableComponent ec, OptimisationTemplate template, string parentName = "") : base(name, null, null, name, parentName) { Treatment = treatment; StudiedComponent = ec; var DesignVariables = template.DesignVariables.Select(v => new RobOptDesignVariable { Name = v.Name }).ToList(); var Objectives = template.Objectives.Select(o => new RobOptObjective { Name = o.Name, Type = o.Type }).ToList(); var Constraints = template.Constraints.Select(c => new RobOptConstraint { Name = c.Name, Type = c.Type, Value = c.Value }).ToList(); robOptTemplate = new RobOptTemplate() { DesignVariables = DesignVariables, Objectives = Objectives, Constraints = Constraints }; ColumnNames.Add("ID"); ColumnTypes.Add(DataTypes.INTEGER); ColumnFormats.Add(0); ColumnUnits.Add(""); for (int i = 0; i < robOptTemplate.DesignVariables.Count(); i++) { string columnHeader = robOptTemplate.DesignVariables[i].Name; ColumnNames.Add(columnHeader); ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(4); ColumnUnits.Add(""); } for (int i = 0; i < robOptTemplate.Objectives.Count(); i++) { string columnHeader = robOptTemplate.Objectives[i].Name; // Loss Function ColumnNames.Add(columnHeader + "LF"); ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(4); ColumnUnits.Add(""); // Mean ColumnNames.Add(columnHeader + "mean"); ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(4); ColumnUnits.Add(""); // Variance ColumnNames.Add(columnHeader + "var"); ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(4); ColumnUnits.Add(""); } for (int i = 0; i < robOptTemplate.Constraints.Count(); i++) { string columnHeader = robOptTemplate.Constraints[i].Name; // Loss Function ColumnNames.Add(columnHeader + "LF"); ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(4); ColumnUnits.Add(""); // Mean ColumnNames.Add(columnHeader + "mean"); ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(4); ColumnUnits.Add(""); // Variance ColumnNames.Add(columnHeader + "var"); ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(4); ColumnUnits.Add(""); } TableNames.Add("RobOptimAllResults"); TableNames.Add("RobOptimGenResults"); Template = template; }
public Population(OptimisationTemplate Template, GAParameters gaParameters) : this(Template, gaParameters, gaParameters.PopulationSize) { }
public MultiObjectivePopulation(OptimisationTemplate Template, GAParameters gaParameters, bool empty) : this(Template, gaParameters, gaParameters.PopulationSize, empty) { }
public MutationOpr(OptimisationTemplate Template, GAParameters gaParameters) { this.Template = Template; this.gaParameters = gaParameters; }
public DetOptStudy(string name, string description, ExecutableComponent studiedComponent, OptimisationTemplate optimisationTemplate, Treatment treatment, string parentName = "") : base(name, null, null, description, parentName) { OptimisationTemplate = optimisationTemplate; base.Treatment = treatment; StudiedComponent = studiedComponent; // Create SQL statements to create tables, sqlStatement1 for OptimAllResults and sqlStatement2 for OptimGenResults sqlStatement1 = "create table OptimAllResults ("; sqlStatement2 = "create table OptimGenResults ("; sqlStatement1 += "ID int, "; sqlStatement2 += "ID int, Category int, "; #region Atif // Prepare results database foreach (BoundedDesignVariableNoInital designVariable in this.OptimisationTemplate.DesignVariables) { string columnHeader = designVariable.Name; ColumnNames.Add(columnHeader); sqlStatement1 += columnHeader + " "; sqlStatement2 += columnHeader + " "; if (designVariable.Data is IntegerData) { ColumnTypes.Add(DataTypes.INTEGER); ColumnFormats.Add(0); sqlStatement1 += "int, "; sqlStatement2 += "int, "; } else if (designVariable.Data is DoubleData) { ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(((DoubleData)(designVariable.Data)).DecimalPlaces); sqlStatement1 += "float, "; sqlStatement2 += "float, "; } ColumnUnits.Add(designVariable.Data.Unit); MinValues.Add(designVariable.LowerBound); MaxValues.Add(designVariable.UpperBound); } foreach (Objective objective in this.OptimisationTemplate.Objectives) { string columnHeader = objective.Name; ColumnNames.Add(columnHeader); sqlStatement1 += columnHeader + " "; sqlStatement2 += columnHeader + " "; if (objective.Data is IntegerData) { ColumnTypes.Add(DataTypes.INTEGER); ColumnFormats.Add(0); sqlStatement1 += "int, "; sqlStatement2 += "int, "; } else if (objective.Data is DoubleData) { ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(((DoubleData)(objective.Data)).DecimalPlaces); sqlStatement1 += "float, "; sqlStatement2 += "float, "; } ColumnUnits.Add(objective.Data.Unit); MinValues.Add(Double.NaN); MaxValues.Add(Double.NaN); } foreach (Aircadia.ObjectModel.Treatments.Optimisers.Formulation.Constraint constraint in this.OptimisationTemplate.Constraints) { string columnHeader = constraint.Name; ColumnNames.Add(columnHeader); sqlStatement1 += columnHeader + " "; sqlStatement2 += columnHeader + " "; if (constraint.Data is IntegerData) { ColumnTypes.Add(DataTypes.INTEGER); ColumnFormats.Add(0); sqlStatement1 += "int, "; sqlStatement2 += "int, "; } else if (constraint.Data is DoubleData) { ColumnTypes.Add(DataTypes.DOUBLE); ColumnFormats.Add(((DoubleData)(constraint.Data)).DecimalPlaces); sqlStatement1 += "float, "; sqlStatement2 += "float, "; } ColumnUnits.Add(constraint.Data.Unit); MinValues.Add(Double.NaN); MaxValues.Add(Double.NaN); } TableNames.Add("OptimAllResults"); TableNames.Add("OptimGenResults"); if (this.OptimisationTemplate.DesignVariables.Count() + this.OptimisationTemplate.Objectives.Count() + this.OptimisationTemplate.Constraints.Count() > 0) { sqlStatement1 = sqlStatement1.Remove(sqlStatement1.Length - 2); sqlStatement2 = sqlStatement2.Remove(sqlStatement2.Length - 2); } sqlStatement1 += ")"; sqlStatement2 += ")"; #endregion Atif Treatment.CreateFolder(); }
public TournamentSelectionOpr(OptimisationTemplate Template, GAParameters gaParameters, int tournamentSize) : base(Template, gaParameters) { this.tournamentSize = tournamentSize; }
public TournamentSelectionOprWithoutReplacement(OptimisationTemplate Template, GAParameters gaParameters, int tournamentSize) : base(Template, gaParameters, tournamentSize) { }
public SimulatedBinaryCrossoverOpr(OptimisationTemplate Template, GAParameters gaParameters) : this(Template, gaParameters, 0.5, 10) { }
public Population(OptimisationTemplate Template, GAParameters gaParameters, int size) { this.Template = Template; this.gaParameters = gaParameters; this.size = size; }
public SelectiveMutationOpr(OptimisationTemplate Template, GAParameters gaParameters) : base(Template, gaParameters) { }
protected SelectionOpr(OptimisationTemplate Template, GAParameters gaParameters) { this.Template = Template; this.gaParameters = gaParameters; }
public OnePointCrossoverOpr(OptimisationTemplate Template, GAParameters gaParameters) : base(Template, gaParameters) { }
public CrossoverOpr(OptimisationTemplate Template, GAParameters gaParameters) { this.Template = Template; this.gaParameters = gaParameters; }
public ProportionalElitismOpr(OptimisationTemplate Template, GAParameters gaParameters, Population.Population parentPopulation, Population.Population childPopulation) : base(Template, gaParameters, parentPopulation, childPopulation) { }
protected double crowdingDistance; //will be initialised to 0.0 upon object creation public MultiObjectiveChromosome(OptimisationTemplate Template, GAParameters gaParameters, bool empty) : base(Template, gaParameters, empty) { objectiveValues = new double[Template.Objectives.Count]; fitnessValues = new double[Template.Objectives.Count]; }
public TournamentSelectionOprWithoutReplacement(OptimisationTemplate Template, GAParameters gaParameters) : this(Template, gaParameters, 2) { }
public GAParameters(OptimisationTemplate template) : this(template.Constraints.Count) { }
public SimulatedBinaryCrossoverOpr(OptimisationTemplate Template, GAParameters gaParameters, double genewiseSwapProb, int polynomialOrder) : base(Template, gaParameters) { this.genewiseSwapProb = genewiseSwapProb; this.polynomialOrder = polynomialOrder; }
public PolynomialMutationOpr(OptimisationTemplate Template, GAParameters gaParameters) : base(Template, gaParameters) { }
public SingleObjectiveChromosome(OptimisationTemplate Template, GAParameters gaParameters, bool empty) : base(Template, gaParameters, empty) { }
public GASetup(OptimisationTemplate template) { InitializeComponent(); gaParameters = new GAParameters(template); }