This is a draft Articles for creation (AfC) submission. It is not currently pending review. While there are no deadlines, abandoned drafts may be deleted after six months. To edit the draft click on the "Edit" tab at the top of the window.
If you need help editing or submitting your draft, please ask us a question at the AfC Help Desk or get live help from experienced editors. These venues are only for help with editing and the submission process, not to get reviews.
If you need feedback on your draft, or if the review is taking a lot of time, you can try asking for help on the talk page of a relevant WikiProject. Some WikiProjects are more active than others so a speedy reply is not guaranteed.
To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags.
The Algorithm G-Demi, an acronym for Gradient-based Differential Evolution for Mixed-Integer Nonlinear Programming, is a variant of the differential evolution designed to solve mixed-integer nonlinear programming problems (MINLP).[1] The presence of both continuous and discrete variables, along with constraints, leads to discontinuous feasible parts of varying sizes in the search space. Traditional evolutionary algorithms face difficulties with these problems due to their insensitivity in handling constraints, leading to the generation of many infeasible solutions. G-DEmi addresses this limitation by integrating a gradient-based repair method within the differential evolution framework. The aim of the repair method is to fix promising infeasible solutions in different subproblems using the gradient information of the constraint set.
G-DEmi continuously improves a population of candidate solutions through an iterative cycle of generation, evaluation, and selection of trial vectors. In each iteration, new vectors are generated by combining existing solutions. They are evaluated based on their performance and repaired as necessary to satisfy the constraints.
The initial population is generated by taking random values. For the real variables, random real values are generated, and for the integer variables, random integer values are generated, corresponding to the solution vector . Subsequently, the objective function and the degree of constraint violation are evaluated.
For each target vector , a trial vector is generated using mutation and binomial crossover (). The integer variables in are rounded before evaluating the vector in the objective function and constraints.
The trial vector is compared with its corresponding target vector, and the better one is selected according to the following feasibility rules:[2]
Between two infeasible solutions, the one with lower constraint violation is preferred.
If one solution is infeasible and the other one is feasible, the feasible solution is preferred.
Between two feasible solutions, the one with better objective function value is preferred.
However, If the trial vector fails to improve its target but still has a lower objective function value , and no other vector of the same subproblem has been repaired in the current generation, this trial vector is repaired.
The better solution between the repaired vector and its target vector is passed to the population of the next generation . Through these steps, G-DEmi generates a new population in each generation.
The following pseudocode illustrates the algorithm:
algorithm G-DEmi Framework
input:, , , , , output: The best solution so far
initialize the population
evaluate and for each individual in whiledofor each individual indo
generate a trial vector
round the integer variables in
evaluate and if is better than then
store into elseifandthen
repair
evaluate and if is better than then
store into end ifend if
update end forend while
The gradient-based repair method is a crucial component of G-DEmi, designed to address infeasibility in trial vectors generated by differential evolution operators. This method focuses on independently exploring subproblems defined by integer variables. Specifically, to repair a vector with mixed variables , only the real variables are modified while the integer variables remain fixed.
The method repairs only those trial vectors that satisfy two conditions: (i) they lost the tournament against their target vectors but have a better objective function value, and (ii) they belong to a subproblem where no solution has been repaired in the current generation. These two conditions aim to promote the repair of trial vectors with higher potential and ensure that each subproblem is explored independently, avoiding the repair of similar solutions multiple times.
The constraint violation is defined as a vector that contains the violation degree for each inequality and equality constraint in a given problem, for a particular solution vector . Parameters and denote the number of inequality and equality constraints, respectively, and specifies the tolerance for equality constraints. The sign function preserves the sign of the equality violation.
This repair method aims to transform into a feasible solution, which involves adjusting the elements of the vector to zero. Iteratively, a repaired vector can be obtained using Newton-Raphson's method through the following equation, which represents a linear approximation of in the direction of the origin:
However, it is common that the number of variables differs from the number of constraints. In this case, the matrix is non-invertible and the Moore-Penrose pseudoinverse must be used
Where represents the pseudoinverse matrix of the gradient matrix . A computationally efficient way of finding is by employing singular value decomposition.
A mixed trial vector is defined, where only the component is updated during the iterative repair process. As a result, the constraint violation degree vector and the gradient matrix can be defined as:
The repair method follows these steps:
Algorithm: Gradient-based repair method
Input:Output:
Initialize .
While none of the stopping criteria is fulfilled:
Calculate
Calculate
Remove zero elements of and their corresponding values in .
Calculate the pseudoinverse .
Calculate
Update .
Update .
Increment .
End WhileStopping criteria:: Maximum number of iterations reached.
: All elements of are equal to zero.
: Maximum absolute difference between and is equal to or lower than .
This repair procedure can be illustrated by the following example. Consider a scenario with one inequality constraint and one equality constraint, as shown below:
Suppose and an equality tolerance . In the first iteration (where ), and . Therefore, the vectors and are computed as follows:As you can see, only was violated. Therefore, the element of needs to be removed from along with its corresponding values in . This leads to . Then, and its pseudoinverse are computed as follows:Subsequently, the vector is obtained as follows:The updated vector results in:As you can see, the values of satisfy all the constraints. Therefore, the trial vector has been successfully repaired, and its new values are .