Scipy Evoluzione differenziale

Scipy Evoluzione differenziale
Questo articolo parla di Evoluzione differenziale di Scipy (DE). Scipy è la biblioteca del linguaggio Python e l'evoluzione differenziale è il metodo o la funzione della biblioteca di Scipy. La maggior parte delle persone ha imparato Python, che si tratti di sviluppatori o meno, poiché le numerose biblioteche e funzioni di Python lo rendono molto sicuro e affidabile. Scipy viene spesso utilizzato per risolvere equazioni differenziali e algebriche, interpolazione, ottimizzazione, ecc. Qui, stiamo discutendo dell'utilizzo di Scipy DE per aiutarti a capire come implementare la funzione di evoluzione differenziale di Scipy nelle applicazioni Python.

Cos'è l'evoluzione differenziale di Scipy nella lingua Python?

Scipy è una biblioteca superficiale, libera e comprensibile utilizzata per risolvere questioni scientifiche e matematiche. Scipy è una scatola del tesoro per gli sviluppatori perché la sua biblioteca è piena di moduli preziosi. Scipy espande la funzionalità numpy con un prezioso gruppo di algoritmi. La libreria Scipy ha sotto-pacchetti che possono essere utilizzati per i calcoli, come Scipy.io, Scipy.ottimizzare, ecc. Scipy produce una funzione di "evoluzione differenziale" e molte potenti funzioni in Scipy.Ottimizza il pacchetto. Il Scipy.Ottimizzazione viene utilizzata per l'ottimizzazione nelle applicazioni Python.

La funzione di evoluzione differenziale è una funzione globale acquisita dal pacchetto Optimize Scipy che viene utilizzato per trovare il minimo globale delle funzioni multivariate. Può gestire funzioni oggettive multidimensionali che non sono lineari e non differenziabili. È un algoritmo di ricerca utilizzato per cercare aree di funzioni di spazio continuo. Questa funzione funziona su valori reali.

Sintassi della funzione di evoluzione differenziale

La funzione di evoluzione differenziale è presente nella Python utilizzando la funzione differeniale_evolution (). La sintassi della funzione di evoluzione differenziale è mostrata di seguito:

Esaminiamo i parametri della funzione:

La funzione deve essere richiamabile con f (x,*args); I limiti si riferiscono alla sequenza di variabili che possono essere specificate in due modi: la strategia è facoltativa o una stringa con il valore predefinito "best1bin"; Maxiter è facoltativo o un valore int; Popsize è int o facoltativo; Tol è int o facoltativo; Il valore della mutazione è in galleggiante o facoltativo; Il valore di ricombinazione è in galleggiante o facoltativo; Il seme non è nessuno, int, numpy e casuale.

Nella prossima sezione, discuteremo di una funzione di evoluzione differenziale con l'aiuto di semplici esempi.

Esempio 1

Cominciamo con un esempio semplice che svilupperà il tuo interesse a comprendere il concetto di funzione di evoluzione differenziale. Abbiamo usato la funzione differencial_evolution () per trovare il valore minimo. Ma, per trovare il valore minimo, la funzione richiede limiti di ricerca e una funzione obiettivo callone definita. Di conseguenza, definiamo una funzione prima di utilizzare la funzione differenziale_evolution nel programma. Il codice di riferimento del programma è menzionato di seguito:

Importa Numpy come NP
da Scipy Import Optimize
da Scipy.Ottimizza l'importazione differenziale_evolution
Importa matplotlib.Pyplot come py
da matplotlib import cm
def func (p):
z, x = p
H = np.sqrt (z ** 4 + x ** 4)
restituire np.SQRT (H)
De_bounds = [[-6,6], [-6,6]]
res = differenial_evolution (func, de_bounds)
Stampa (Res)

Abbiamo importato librerie come Scipy e Numpy per i calcoli numerici dell'array. Abbiamo importato la funzione differencial_evolution dal Scipy.ottimizza il modulo. Quindi, con la parola chiave "def", definiamo la funzione obiettivo richiamabile e passiamo il parametro "p". Definiamo correttamente la funzione che trova la radice quadrata dell'aggiunta di variabili numpy, che è z, x. Il valore della radice quadrata è memorizzato nella variabile "H". Restituiamo il valore della radice quadrata nella funzione definita. Viene restituito come argomento.

Successivamente, sistemiamo i limiti della variabile che può essere dettagliato spiegando i valori Min e Max della funzione. Eseguiamo la funzione differencial_evolution con "de_bounds" "come argomento. Abbiamo chiamato il valore della funzione con una variabile denominata res. Alla fine, utilizziamo l'istruzione di stampa per mostrare l'output. Il risultato è stato visualizzato dopo aver eseguito il programma. Lo screenshot di output previsto è mostrato di seguito:

Differenial_evolution () mostra che il valore minimo della funzione viene visualizzato al punto (0, 0).

Esempio 2

Questo è un altro esempio della funzione di evoluzione differenziale. In questo, prendiamo array e applichiamo diverse operazioni tra di loro. Il codice di riferimento del programma è menzionato di seguito:

Importa Numpy come NP
da Scipy Import Optimize
da Scipy.Ottimizza l'importazione differenziale_evolution
Def Objective_Func (D):
return (d [1] - 1.2) / 2 + 0.5 * d [0] * 1.3 * (d [1] +0.5) ** 3
_bounds = [(-0.3,0.3), (-0.3,0.3)]
Disp = differenial_evolution (obiettivo_func, _bounds, popsize = 80, polacco = false)
Stampa (Disp)

Come mostrato nello screenshot precedente, abbiamo importato correttamente il Scipy.ottimizzare.Libreria differenziale_evolution e biblioteca Numpy nel programma. Ora, definiamo una funzione obiettiva per conto di cui troviamo un valore minimo. Abbiamo superato l'espressione matematica nella funzione oggettiva e restituito un valore come argomento alla funzione definita. Il limite tra i valori della funzione è un must. Quindi, dopo aver definito la funzione, abbiamo risolto entrambi i valori (massimo che minimo).

Dopo aver definito tutte le variabili essenziali, abbiamo chiamato la funzione differenziale_evolution per trovare il valore minimo di una funzione. Abbiamo salvato il valore di reso minimo della funzione in una variabile chiamata Disp. Alla fine del programma, passiamo la variabile DEST nell'istruzione di stampa per visualizzare il risultato. Dopo aver eseguito il programma, il valore minimo della funzione definita viene visualizzato sullo schermo con limiti. Quello che segue è l'output:

Esempio 3

Come possiamo vedere, l'evoluzione differenziale restituisce diversi valori minimi di una funzione oggettiva in base alla sua definizione. Qui, prendiamo un altro esempio relativo a differencial_evolution (). Il codice di riferimento per questo programma è mostrato di seguito:

Importa Numpy come NP
da Scipy Import Optimize
da Scipy.Ottimizza l'importazione differenziale_evolution
defj_func (oper):
restituire 3 ** 9 /0.2 + 6 /3 *2 ** 20
confine = [(-0.5,0.5), (-0.5,0.5)]
out = differenial_evolution (obj_func, confine, polar = true)
print ('output is:', fuori)

Le biblioteche vengono importate con successo in questo programma perché non possiamo eseguire le operazioni che desideriamo senza di loro. Di conseguenza, includiamo la biblioteca Scipy nel programma. Successivamente, definire la funzione obiettivo con l'operazione richiesta. Troviamo il valore minimo di quella funzione definita. Dopo aver regolato il limite della funzione, abbiamo chiamato la funzione definita nell'evoluzione differenziale per trovare il valore minimo della funzione. Questo viene quindi mantenuto nella variabile. Visualizziamo questo chiamando questa variabile nell'istruzione di stampa. L'output di questo programma è mostrato di seguito:

Come nella schermata precedente, il valore minimo della funzione è [0.29236931, 0.16808904]. Puoi anche eseguire questi esempi nel tuo ambiente per comprendere meglio il concetto di funzione differenziale_evolution.

Conclusione

Prendiamo un rapido riepilogo di questo articolo. Abbiamo compreso la funzionalità di base del metodo di evoluzione differenziale che appartiene alla biblioteca di Scipy in Python. Python è la lingua più recente, con numerose biblioteche flessibili. La maggior parte degli sviluppatori è stato aiutato a risolvere strutture di codice complesse da funzioni e librerie predefinite. L'evoluzione differenziale è una funzione di ottimizzazione del pacchetto Scipy o un metodo utilizzato per la minimizzazione. Quando si utilizzano questi esempi precedenti nel codice, si comprende più chiaramente il concetto di evoluzione differenziale.