Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

scipy.optimize.differential_evolution is a stochastic, population-based method for searching for a minimum of a multivariable function within specified bounds. It is useful when a problem is difficult to solve with gradient-based methods, but it does not guarantee that a run will find the true global minimum. You provide an objective function and bounds, then choose settings that balance search effort, evaluation cost, and problem constraints.

What differential evolution does

The SciPy project describes differential_evolution as a function that “finds the global minimum of a multivariate function.” In practice, treat that as the method’s aim, not a guarantee: it is a stochastic global-search technique, and its result depends on the objective, bounds, and run configuration. Unlike gradient-based methods, it does not use derivatives. It can therefore be useful for challenging bounded objectives, but may require substantially more function evaluations than a conventional local optimizer. See the SciPy differential_evolution API reference.

The algorithm maintains a population of candidate points. It mutates population members to generate trial candidates, evaluates those trials, and retains a trial when it improves on its corresponding candidate. SciPy provides built-in strategies, with best1bin identified in the API as a good starting point for many systems; a custom strategy callable is also available. The SciPy implementation provides further detail.

Write the objective and define bounds

The objective must accept a vector of variables and return a scalar value to minimize. Additional fixed parameters can be passed through args. Supply one bound per variable, either as a sequence of lower-and-upper pairs or as a Bounds object. Bounds are part of the problem definition: choose them to reflect the feasible domain rather than using arbitrarily broad ranges.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
import numpy as np
from scipy.optimize import differential_evolution

def objective(x):
    # Replace with the scalar cost or error you want to minimize.
    return (x[0] - 2)**2 + (x[1] + 1)**2

result = differential_evolution(
    objective,
    bounds=[(-5, 5), (-5, 5)],
)

print(result.x)       # best point found
print(result.fun)     # objective value at that point
print(result.success) # whether the configured stopping condition was met
print(result.message) # termination explanation

The call returns an OptimizeResult. Inspect the point and objective value, along with the termination status and message; do not interpret successful termination by itself as proof of a global optimum. SciPy’s optimization tutorial includes examples using Rosenbrock and Ackley functions, among other optimization workflows.

Choose a computation budget before tuning

Population search can make many objective calls. The API gives the following maximum evaluation-count formula when polishing is disabled:

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

(maxiter + 1) * popsize * (N - N_equal)

Here, N is the number of variables and N_equal is the number whose lower and upper bounds are equal. This is a budget calculation, not a runtime estimate or accuracy promise. The optional polishing stage can add evaluations.

The default population initialization is Latin hypercube. The API also supports Sobol, Halton, random, and user-supplied populations. Stopping is based on the standard deviation of population energies in relation to the configured absolute and relative tolerances. When tuning a real problem, consider the variables’ bounds, initialization, stopping tolerances, population size, and maximum generations together: tightening one setting does not by itself guarantee a better answer.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Configure strategy, constraints, and polishing

Strategy and search settings

The API exposes strategy, maximum generations (maxiter), population-size multiplier (popsize), mutation, recombination, relative and absolute tolerances, initialization, and an optional initial point. Begin with a built-in strategy such as best1bin, then change settings in response to the objective and the available evaluation budget. A custom strategy callable is supported, but callable strategies and expanded callback support were added in SciPy 1.12.0; verify the documentation for the version installed in your environment.

Constraints and integer variables

Constraints and an integrality option are supported. Use these when feasibility or discrete-valued variables are part of the actual problem rather than trying to repair an unconstrained result afterward. The precise constraint definitions and accepted option forms are documented in the API reference.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Polishing

Polishing is enabled by default. For an unconstrained problem, SciPy uses L-BFGS-B; when constraints are present, it uses trust-constr. Polishing seeks a locally improved result after the population search and can incur extra evaluations. A custom polish callable is available starting in SciPy 1.17.0. If you provide one, you are responsible for ensuring it respects bounds, constraints, and integrality. The API also notes workers-related polishing behavior added in SciPy 1.15.0, so check the version-specific reference when relying on that behavior.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choose immediate, parallel, or vectorized evaluation

With updating='immediate', the best candidate can update during a generation. With updating='deferred', it updates at the end of the generation. The workers and vectorized options are compatible with deferred updating and may override the requested updating mode.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
  • Parallel workers: Consider this when objective evaluations are expensive enough to offset process overhead. For inexpensive objectives, parallel execution can be slower.
  • Vectorization: Consider this when your objective can evaluate a batch of candidates together; it may reduce interpreter overhead.
  • Serial immediate updating: This allows the best candidate to update within the generation, but is not compatible with every execution mode.

Neither parallel nor vectorized execution is universally faster; the useful choice depends on objective cost and how the objective is implemented. SciPy’s examples demonstrate parallel workers and vectorization, but are documentation examples rather than comparative performance tests.

Check your SciPy version and interpret results carefully

The current SciPy reference in the versioned v1.18.0 manual records version-sensitive options: callable strategy customization and expanded callback support in 1.12.0, workers-related polishing behavior in 1.15.0, and callable polishing in 1.17.0. Check the documentation matching your installed SciPy release before using these features, because defaults and available options can change.

The official API does not establish a general-purpose benchmark statistic or a numerical success rate for differential evolution. Its evaluation formula describes a maximum count under specified conditions, not expected speed, reliability, or typical accuracy. The API credits Storn and Price with the method and cites their 1997 paper, “Differential Evolution — a Simple and Efficient Heuristic for Global Optimization over Continuous Spaces.” For an algorithm-focused specialist book rather than a SciPy manual, Springer catalogs Differential Evolution: A Practical Approach to Global Optimization by Kenneth V. Price, Rainer M. Storn, and Jouni A. Lampinen.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.