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
2
votes
1 answer

Parameter Intervals in Differential Evolution vs. Genetic Algorithms

I'm used to the method that each parameter in genetic algorithms (GAs) can be represented as a binary string which can be encoded to a real value in a specified interval. I'm currently coding up a differential evolution (DE) code and I haven't read…
2
votes
1 answer

DEoptim error: objective function result has different length than parameter matrix

I'm trying to use the DEoptim command (from the R package of the same name) to minimize a function, but am getting this strange error “objective function result has different length than parameter matrix.” I can't find anything about this problem,…
Scott
  • 85
  • 7
2
votes
1 answer

Standard Errors for Differential Evolution

Is it possible to calculate standard errors for Differential Evolution? From the Wikipedia entry: http://en.wikipedia.org/wiki/Differential_evolution It's not derivative based (indeed that is one of its strengths) but how then so you calculate the…
Bazman
  • 2,058
  • 9
  • 45
  • 65
2
votes
1 answer

Portfolio optimization with Differential evolution

I faced an optimization problem. I need to optimize portfolio for return Omega measure. I found suggestions that this can be done by using differential evolution through DEoptim(Yollin's very nice slides on R tools for portfolio optimization.…
user2287846
  • 71
  • 1
  • 1
  • 4
1
vote
2 answers

How to get multiple possible solutions for differential evolution algorithm?

the tutorial from scipy only shows one possible solution for differential evolution (https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differential_evolution.html). How can i get multiple solutions? And if not, is it because of…
1
vote
0 answers

How to use M1 GPU or neural engine to decrease time taken for scipy.optimize.differential_evolution?

Trying to use scipy.optimise.differential_evolution to optimise my code. I set workers = -1 in my geneticalgo.py file to utilize all cores, and it always makes the CPU cores do all the work. Is there a way to force the GPU or neural engine to run…
1
vote
1 answer

How to optimize with differential evolution using julia package Evolutionary.jl?

I encountered such problem after I specified a differential evolution algorithm and an initial population of multiplied layer perceptron network. It requires to evolve a population of MLPs by DE. I tried to use Evolutionary package, but failed at…
1
vote
1 answer

How to pass shared variable in scipy differential evolution with worker > 2

I want to pass a shared variable in python scipy "differential_evolution" to keep track of experiment number. I can do this with worker=1 , but i am unable to keep track of experiment number with worker > 2. Here is my code: from scipy.optimize…
1
vote
0 answers

Solving differentioal equations with rapid oscillations using odeint

I have wrote this code to solve an equation , I know the behavior of this function has very rapid oscillations, when I RUN it gives bogus values for some "m[x]" and some "t"'s, with this…
1
vote
2 answers

How to speed up differential_evolution to find the minimum of Sum of Squared Errors with five variables

I am trying to find the right scaling, angle and translation to align two images with different resolution, using differential_evolution (shown in the Code below), which works, but the more pixel I want to compare, the longer the runtime of my Code…
1
vote
1 answer

How to avoid 'Too many open files' error when using parallelization within scipy.optimize.differential_evolution?

I am running a python script which uses scipy.optimize.differential_evolution to find optimum parameters for given data samples. I am processing my samples sequentially. The script is running fine, although when I wanted to make use of the parallel…
1
vote
1 answer

Varying over multiple parameters with scipy's differential evolution

I'm finding the maximum of a function f over the parameter nu in Python using Scipy's built-in differential evolution, while keeping the other terms (args) fixed. My code max = scipy.optimize.differential_evolution(lambda nu:-f(args,nu),bounds) …
Joshuah Heath
  • 663
  • 1
  • 5
  • 20
1
vote
1 answer

Scipy Optimization Algorithms: Early stopping

I want to know how to trigger early stopping for scipy optimization algorithms like differential evolution, dual annealing, and basin hopping. I know you can call a callback function that returns True or False, but, I wanted to know how to trigger…
1
vote
2 answers

Problems with pseudo-inverse of Jacobian matrix

I'm implementing the E-Constrained Differential Evolution with Gradient-Based Mutation algorithm (Takahama, 2006). For the mutation part, I have to calculate the gradient of each constraint function for the trial vector, thus defining the Jacobian…
1
vote
1 answer

Passing a 'map-like' callable to scipy's differential_evolution

I have an existing multiprocessing pool that I use for other functions that I'd like to pass to differential_evolution but I can't seem to get the worker input set correctly. Is this possible? The docs say that workers should be ...a map-like…
Tim Jim
  • 620
  • 5
  • 19