Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Urgente! Obtenga ayuda de expertos de matlab

¡Urgente! Obtenga ayuda de expertos de matlab

Encontré esto yo mismo. Había varios errores en el código original. Los corregí y los depuré.

Este es un documento muy útil para principiantes, especialmente aquellos sin experiencia en programación

Un ejemplo de algoritmo genético

A continuación se muestra un ejemplo de algoritmo genético

Encuentra el valor máximo de la siguiente función

f(x)=10*sin(5x) 7*cos(4x) x∈

Toma el valor de x y use el valor de x en la forma de la siguiente función. p> Representar el valor de x en forma binaria de 10 bits es un problema binario, y la resolución de números binarios de 10 bits es (10-0)/(2^10-1)≈0,01 por.

Discretiza el dominio variable en un dominio binario, x=0 10*b/1023, donde b es un número binario en .

------------------------------ ------ -------------------------------------------- ------ --------------------------

------- ------- ------------------------------------------- ------- ------------------------------------------- --

Programación

--------------------------------- ------- -------

2.1 Inicialización (codificación)

La función de la función initpop.m es inicializar la población. popsize representa el tamaño de la población, chromlength representa la longitud del cromosoma (la longitud del número binario),

La longitud depende de la longitud de codificación binaria de la variable (10 bits en este ejemplo).

Subrutina de algoritmo genético

Nombre: initpop.m

Inicialización

Función pop=initpop(popsize, chromlength)

pop=round(rand(popsize, chromlength)); rand genera aleatoriamente una matriz, el número de filas de cada unidad es popsize, el número de columnas es chromlength y el número de filas es {0, 1},

roud redondea cada celda de la matriz. Esto crea la población inicial.

2.2 Calcular el valor de la función objetivo

2.2.1 Convertir un número binario en un número decimal (1)

Subrutina del algoritmo genético

Nombre : decodebinary.m

Generado)

evalops es el parámetro pasado a la función de ajuste, opts es la precisión de la codificación binaria, termops es el parámetro pasado a maxGenTerm cuando termina maxGenTerm Se selecciona la función, es decir, xoverops es el parámetro pasado a la función de cruce. mutops son los parámetros pasados ​​a la función de mutación.

El problema es encontrar el valor máximo de f(x)=x 10*sin(5x) 7*cos(4x), donde 0lt;=xlt;=9

Analizar codificación binaria Seleccione, el número de individuos en la población es 10, la longitud del código binario es 20, la probabilidad de cruce es 0,95 y la probabilidad de mutación es 0.

08

Lista de programas

Escribe la función objetivo

función)

evalops es el parámetro pasado a la función de ajuste, opts es el codificación binaria La precisión de termops es el parámetro pasado a maxGenTerm al seleccionar la función de terminación maxGenTerm, es decir, xoverops es el parámetro pasado a la función de cruce. mutops son los parámetros pasados ​​a la función de mutación.

Referencia: No lo recuerdo, lo siento