Evolução diferencial ccepy

Evolução diferencial ccepy
Este artigo é sobre a evolução diferencial do Scipy (DE). Scipy é a biblioteca da linguagem Python, e a evolução diferencial é o método ou função da biblioteca scipy. A maioria das pessoas tem aprendido Python, sejam desenvolvedores ou não, já que as inúmeras bibliotecas e funções de Python o tornam muito seguro e confiável. Scipy é freqüentemente usado para resolver equações diferenciais e algébricas, interpolação, otimização, etc. Aqui, estamos discutindo o Scipy de Usage para ajudá -lo a entender como implementar a função Scipy Diference Evolution em Applications Python.

O que é evolução diferencial círculo na linguagem Python?

Scipy é uma biblioteca superficial, livre e compreensível usada para resolver problemas científicos e matemáticos. Scipy é uma caixa de tesouro para desenvolvedores porque sua biblioteca está cheia de módulos preciosos. Scipy expande a funcionalidade Numpy com um aglomerado valioso de algoritmos. A biblioteca scipy possui sub-pacotes que podem ser usados ​​para cálculos, como o Scipy.io, Scipy.otimizar, etc. O Scipy produz uma função de "evolução diferencial" e muitas funções poderosas no Scipy.otimizar o pacote. O círculo.Otimizar é usado para otimização em aplicativos Python.

A função de evolução diferencial é uma função global adquirida pelo pacote Scipy Optimize que é usado para encontrar o mínimo global de funções multivariadas. Ele pode gerenciar funções objetivas multidimensionais que não são lineares e não diferenciáveis. É um algoritmo de pesquisa usado para pesquisar áreas de funções espaciais contínuas. Esta função funciona em valores reais.

Sintaxe da função de evolução diferencial

A função de evolução diferencial está presente no python utilizando a função diferencial_evolution (). A sintaxe da função de evolução diferencial é mostrada abaixo:

Vamos analisar os parâmetros da função:

A função deve ser chamada com f (x,*args); Limites refere -se à sequência de variáveis ​​que podem ser especificadas de duas maneiras: a estratégia é opcional ou uma string com o valor padrão "Best1bin"; Maxiter é opcional ou um valor int; Popsize é int ou opcional; Tol é int ou opcional; O valor da mutação está em flutuação ou opcional; O valor de recombinação está em flutuação ou opcional; a semente não é, int, numpy e aleatória.

Na próxima seção, discutiremos uma função de evolução diferencial com a ajuda de exemplos fáceis.

Exemplo 1

Vamos começar com um exemplo direto que desenvolverá seu interesse em entender o conceito de função de evolução diferencial. Usamos a função diferencial_evolution () para encontrar o valor mínimo. Mas, para encontrar o valor mínimo, a função exigiu limites de pesquisa e uma função objetiva chamada definida. Como resultado, definimos uma função antes de usar a função diferencial_evolution no programa. O código de referência do programa é mencionado abaixo:

importar numpy como np
De importação ccepy otimize
de Scipy.Otimize a importação diferencial_evolution
importar matplotlib.pyplot como py
De Matplotlib Importar CM
Def Func (P):
z, x = p
h = np.sqrt (z ** 4 + x ** 4)
retornar np.sqrt (h)
De_bounds = [[-6,6], [-6,6]]
res = diferencial_evolution (func, de_bounds)
Imprimir (res)

Importamos bibliotecas como Scipy e Numpy para cálculos numéricos de matriz. Importamos a função diferencial_evolution do círculo.otimizar o módulo. Então, com a palavra -chave "def", definimos a função objetiva chamada e passamos o parâmetro "p". Definimos com sucesso a função que encontra a raiz quadrada da adição de variáveis ​​Numpy, que é z, x. O valor da raiz quadrada é armazenado na variável "H". Retornamos o valor da raiz quadrada na função definida. É devolvido como um argumento.

Depois disso, liquidamos os limites da variável que podem ser detalhados explicando os valores mínimos e max da função. Executamos a função diferencial_evolution com 'de_bounds ”' como um argumento. Chamamos o valor da função com uma variável chamada res. No final, usamos a declaração de impressão para mostrar a saída. O resultado foi exibido após a execução do programa. A captura de tela de saída esperada é mostrada abaixo:

Diferencial_evolution () mostra que o valor mínimo da função é exibido no ponto (0, 0).

Exemplo 2

Este é outro exemplo da função de evolução diferencial. Nisso, pegamos matrizes e aplicamos diferentes operações entre eles. O código de referência do programa é mencionado abaixo:

importar numpy como np
De importação ccepy otimize
de Scipy.Otimize a importação diferencial_evolution
def objetive_func (d):
Retornar (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 = diferencial_evolution (Objective_func, _bounds, PopSize = 80, Polish = false)
impressão (disp)

Conforme mostrado na captura de tela anterior, importamos com sucesso o círculo.otimizar.Biblioteca diferencial_evolution e a biblioteca Numpy no programa. Agora, definimos uma função objetiva em nome da qual encontramos um valor mínimo. Passamos a expressão matemática na função objetivo e retornamos um valor como um argumento à função definida. O limite entre os valores da função é um obrigatório. Então, depois de definir a função, corrigimos os dois valores (máximo e mínimo).

Depois de definir todas as variáveis ​​essenciais, chamamos a função diferencial_evolution para encontrar o valor mínimo de uma função. Salvamos o valor mínimo de retorno da função em uma variável chamada DISP. No final do programa, passamos a variável de disposição na declaração de impressão para exibir o resultado. Depois de executar o programa, o valor mínimo da função definido é exibido na tela com limites. A seguir é a saída:

Exemplo 3

Como podemos ver, a evolução diferencial retorna diferentes valores mínimos de uma função objetiva com base em sua definição. Aqui, tomamos outro exemplo relacionado a diferencial_evolution (). O código de referência para este programa é mostrado abaixo:

importar numpy como np
De importação ccepy otimize
de Scipy.Otimize a importação diferencial_evolution
def obj_func (oper):
Retornar 3 ** 9/0.2 + 6 /3 *2 ** 20
limite = [(-0.5,0.5), (-0.5,0.5)]
out = diferencial_evolution (obj_func, limite, polonês = true)
Imprimir ('Saída é:', Out)

As bibliotecas são importadas com sucesso para este programa porque não podemos executar as operações que desejamos sem elas. Como resultado, incluímos a biblioteca scipy no programa. Depois disso, defina a função objetiva com a operação necessária. Encontramos o valor mínimo dessa função definida. Depois de ajustar o limite da função, chamamos a função definida na evolução diferencial para encontrar o valor mínimo da função. Isso é mantido na variável. Exibimos isso chamando essa variável na declaração de impressão. A saída deste programa é mostrada abaixo:

Como na captura de tela anterior, o valor mínimo da função é [0.29236931, 0.16808904]. Você também pode executar esses exemplos em seu ambiente para entender melhor o conceito de função diferencial_evolution.

Conclusão

Vamos fazer uma rápida recapitulação deste artigo. Consertamos a funcionalidade básica do método de evolução diferencial que pertence à biblioteca cipy em Python. Python é o idioma mais recente, com inúmeras bibliotecas flexíveis. A maioria dos desenvolvedores foi auxiliada na solução de estruturas de código complexas por funções e bibliotecas predefinidas. A evolução diferencial é uma função de otimização de pacote cipy ou método usado para minimização. Quando você usa esses exemplos anteriores no código, você entende mais claramente o conceito de evolução diferencial.