Hva er Scipy Differential Evolution på Python -språket?
Scipy er et overfladisk, gratis og forståelig bibliotek som brukes til å løse vitenskapelige og matematiske problemer. Scipy er en skattekasse for utviklere fordi biblioteket er fullt av dyrebare moduler. Scipy utvider numpy funksjonalitet med en verdifull klynge av algoritmer. Scipy-biblioteket har underpakker som kan brukes til beregninger, som Scipy.io, scipy.Optimaliser osv. Scipy produserer en "differensiell evolusjon" -funksjon og mange kraftige funksjoner i scipy.Optimaliser pakken. Scipy.Optimaliser brukes til optimalisering i Python -applikasjoner.
Differensiell evolusjonsfunksjon er en global funksjon anskaffet av Scipy Optimize -pakken som brukes til å finne det globale minimum av multivariate funksjoner. Den kan håndtere flerdimensjonale objektive funksjoner som er ikke-lineære og ikke-differensierende. Det er en søkealgoritme som brukes til å søke om områder med kontinuerlige romfunksjoner. Denne funksjonen fungerer på reelle verdier.
Syntaks for differensiell evolusjonsfunksjon
Differensiell evolusjonsfunksjon er til stede i Python ved å bruke funksjonen Differensial_evolution (). Syntaks for differensialutviklingsfunksjonen er vist nedenfor:
La oss gå over funksjonsparametrene:
Funksjonen må være kalt med F (x,*args); Grenser refererer til sekvensen av variabler som kan spesifiseres på to måter: strategi er valgfri eller en streng med standardverdien “best1bin”; Maxiter er valgfritt eller en INT -verdi; PopSize er int eller valgfritt; TOL er int eller valgfritt; Mutasjonsverdien er i float eller valgfri; Rekombinasjonsverdi er i float eller valgfritt; frøet er ingen, int, numpy og tilfeldig.
I neste avsnitt vil vi diskutere en differensiell evolusjonsfunksjon ved hjelp av enkle eksempler.
Eksempel 1
La oss begynne med et enkelt eksempel som vil utvikle din interesse for å forstå konseptet med differensiell evolusjonsfunksjon. Vi brukte differensial_evolution () -funksjonen for å finne minimumsverdien. Men for å finne minimumsverdien, krevde funksjonen nødvendige søkegrenser og en definert kallbar objektiv funksjon. Som et resultat definerer vi en funksjon før vi bruker differensial_evolusjonsfunksjonen i programmet. Referansekoden til programmet er nevnt nedenfor:
Importer numpy som NPVi importerte biblioteker som Scipy og Numpy for Array Numerical Beregning. Vi importerte differensial_evolusjonsfunksjonen fra scipy.Optimaliser modulen. Deretter, med nøkkelordet "def", definerer vi den kallbare objektfunksjonen og passerer parameteren "P". Vi definerer vellykket funksjonen som finner kvadratroten til numpy variabler -tillegget, som er z, x. Kvadratrotverdien lagres i variabelen “h”. Vi returnerer kvadratrotverdien i den definerte funksjonen. Det blir returnert som et argument.
Etter det avgjør vi grensene for variabelen som kan spesifiseres ved å forklare min og maksimale verdier for funksjonen. Vi utfører differensial_evolusjonsfunksjonen med 'de_bounds' 'som et argument. Vi kalte funksjonsverdien med en variabel som heter Res. Til slutt bruker vi utskriftserklæringen for å vise utdataene. Resultatet ble vist etter å ha kjørt programmet. Det forventede skjermbildet er vist nedenfor:
Differensial_evolution () viser at minimumsverdien for funksjonen vises på punktet (0, 0).
Eksempel 2
Dette er et annet eksempel på den differensielle evolusjonsfunksjonen. I dette tar vi matriser og bruker forskjellige operasjoner mellom dem. Referansekoden til programmet er nevnt nedenfor:
Importer numpy som NPSom vist i forrige skjermbilde, importerte vi scipy med hell.optimalisere.Differensial_evolution Library og Numpy -biblioteket inn i programmet. Nå definerer vi en objektiv funksjon på vegne som vi finner en minimumsverdi. Vi passerte det matematiske uttrykket i den objektive funksjonen og returnerte en verdi som et argument til den definerte funksjonen. Grensen mellom funksjonsverdier er et must. Så etter å ha definert funksjonen, fikset vi både verdiene (maksimum og minimum).
Etter å ha definert alle essensielle variabler, kalte vi Differensial_evolution -funksjonen for å finne minimumsverdien til en funksjon. Vi lagret funksjonens minimumsavkastningsverdi i en variabel kalt disp. På slutten av programmet passerer vi DISP -variabelen i utskriftserklæringen for å vise resultatet. Etter å ha kjørt programmet vises minimumsverdien for den definerte funksjonen på skjermen med grenser. Følgende er utgangen:
Eksempel 3
Som vi kan se, returnerer differensiell evolusjon forskjellige minimumsverdier for en objektiv funksjon basert på dens definisjon. Her tar vi et annet eksempel relatert til differensial_evolution (). Referansekoden for dette programmet vises nedenfor:
Importer numpy som NPBibliotekene importeres vellykket til dette programmet fordi vi ikke kan utføre operasjonene vi ønsker uten dem. Som et resultat inkluderer vi Scipy -biblioteket i programmet. Etter det, definer objektivfunksjonen med den nødvendige driften. Vi finner minimumsverdien for den definerte funksjonen. Etter å ha justert funksjonens grense, kalte vi den definerte funksjonen i differensiell evolusjon for å finne funksjonens minimumsverdi. Dette holdes deretter i variabelen. Vi viser dette ved å kalle denne variabelen i utskriftserklæringen. Utgangen til dette programmet vises nedenfor:
Som i forrige skjermbilde er minimumsverdien til funksjonen [0.29236931, 0.16808904]. Du kan også kjøre disse eksemplene i miljøet ditt for bedre å forstå Differensial_evolution -funksjonskonseptet.
Konklusjon
La oss ta en rask oversikt over denne artikkelen. Vi tok tak i den grunnleggende funksjonaliteten til differensialutviklingsmetoden som tilhører Scipy -biblioteket i Python. Python er det siste språket, med mange fleksible biblioteker. De fleste utviklere fikk hjelp til å løse komplekse kodestrukturer av forhåndsdefinerte funksjoner og biblioteker. Differensiell evolusjon er en scipy -pakkeoptimaliseringsfunksjon eller metode som brukes til minimering. Når du bruker disse tidligere eksemplene i kode, forstår du tydeligere begrepet differensiell evolusjon.