Questions tagged [differential-evolution]

In computer science, differential evolution (DE) is a method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. It's similar to genetic algorithm (GA) except that the candidate solutions are not considered as binary strings (chromosome) but (usually) as real vectors.

DE is used for multidimensional real-valued functions but does not use the gradient of the problem being optimized, which means DE does not require for the optimization problem to be differentiable as is required by classic optimization methods such as gradient descent and quasi-newton methods. DE can therefore also be used on optimization problems that are not even continuous, are noisy, change over time…

DE optimizes a problem by maintaining a population of candidate solutions and creating new candidate solutions by combining existing ones according to its simple formulae, and then keeping whichever candidate solution has the best score or fitness on the optimization problem at hand. In this way the optimization problem is treated as a black box that merely provides a measure of quality given a candidate solution and the gradient is therefore not needed.

DE is originally due to Storn and Price

See also:

103 questions
26
votes
2 answers

What's differential evolution and how does it compare to a genetic algorithm?

From what I've read so far they seem very similar. Differential evolution uses floating point numbers instead, and the solutions are called vectors? I'm not quite sure what that means. If someone could provide an overview with a little bit about the…
18
votes
3 answers

Explain the Differential Evolution method

Can someone please explain the Differential Evolution method? The Wikipedia definition is extremely technical. A dumbed-down explanation followed by a simple example would be appreciated :)
Gili
  • 86,244
  • 97
  • 390
  • 689
9
votes
1 answer

Scipy, differential evolution

The thing is, im trying to design of fitting procedure for my purposes and want to use scipy`s differential evolution algorithm as a general estimator of initial values which then will be used in LM algorithm for better fitting. The function i want…
Tierprot B.
  • 245
  • 1
  • 2
  • 10
8
votes
3 answers

When and why is crossover beneficial in differential evolution?

I implemented a differential evolution algorithm for a side project I was doing. Because the crossover step seemed to involve a lot of parameter choices (e.g. crossover probabilities), I decided to skip it and just use mutation. The method seemed to…
7
votes
3 answers

Scipy Differential Evolution with integers

I'm trying to run an optimization with scipy.optimize.differential_evolution. The code calls for bounds for each variable in x. But I want to a solution where parts of x must be integers, while others can range freely as floats. The relevant part…
5
votes
4 answers

parallel/multithread differential evolution in python

I'm trying to model a biochemical process, and I structured my question as an optimization problem, that I solve using differential_evolution from scipy. So far, so good, I'm pretty happy with the implementation of a simplified model with 15-19…
5
votes
1 answer

what is the importance of crossing over in Differential Evolution Algorithm?

In Differential Evolution Algorithm for optimization problems. There are three evolutionary processes involved, that is mutation crossing over and selection I am just a beginner but I have tried removing the crossing over process and there is no…
puppyxo
  • 73
  • 4
4
votes
0 answers

Python: sharing a dictionary using the multiprocessing capability of scipy.optimize.differential_evolution

I am running an optimisation problem using the module scipy.optimize.differential_evolution. The code I wrote is quite complex and I will try to summarise the difficulties I have: the objective function is calculated with an external numerical…
4
votes
1 answer

How to enable parallel in scipy.optimize.differential_evolution?

I am trying to find the global minimum of a function using differential_evolution from scipy.optimize. As explained in the scipy reference guide, I should set in the options: updating='deferred',workers=number of cores However, when I run the code,…
user3015729
  • 191
  • 2
  • 7
3
votes
1 answer

Function Values using Differential Evolution

How can I use differential evolution to find the maximum values of the function function f(x) = -x(x+1) from -500 to 500? I need this for a chess program I am making, I have begun researching on Differential Evolution and am still finding it quite…
osama
  • 622
  • 2
  • 10
  • 19
3
votes
1 answer

Scipy minimize returns a higher value than minimum

As a part of multi-start optimization, I am running differential evolution (DE), the output of which I feed as initial values to scipy minimization with SLSQP (I need constraints). I am testing testing the procedure on the Ackley function. Even in…
3
votes
1 answer

scipy.optimize.differential_evolution cannot be run in parallel if the objective function has namedtuple arguments

To make my modeling code neater I've been using namedtuples to manage model parameters. I would like to use SciPy's parallelized implementation of differential evolution to fit my model to data, but I can only get it to work in series. The…
3
votes
2 answers

Binary variables for minimization by scipy differential evolution

I have a non-linear minimization problem that takes a combination of continuous and binary variables as input. Think of it as a network flow problem with valves, for which the throughput can be controlled, and with pumps, for which you can change…
3
votes
1 answer

Implementing three functions at once into a Different Evolution Optimizer

I’ve installed the Differential Evolution (DE) Optimizer following the instructions on https://github.com/skarjoko/differential-evolution/blob/master/Main.java, and simply running the code in eclipse works fine and easily lets me optimize the…
3
votes
2 answers

Constraints on parameters using scipy differential evolution

I am trying to use differential evolution to optimize availability based on cost. However, I have three unknown parameters (a, b, c) here and I can define the range using bounds. However, I want to define additional constraint as a+b+c <= 10000. I…
1
2 3 4 5 6 7