#include <CAlgoritmoGenetico.h>
Public Member Functions | |
| CAlgoritmoGenetico () | |
| ~CAlgoritmoGenetico () | |
| void | Limpiar () |
| void | Inicializar (int nEntradas, int nSalidas) |
| void | CrearMente (IIndividuoIA *Individuo) |
| void | Epoca (TPoblacionIA &vPoblacion) |
| int | GetGeneracion () const |
| TFenotipos | GetMejoresFenotipos () |
Private Member Functions | |
| void | OrdenarYSalvarIndividuos () |
| void | ResetearYEliminar () |
| void | AjustarIdoneidadEspecies () |
| void | EspeciarYCalcularHijosAExpandir () |
| const CGenoma * | TournamentSelection (int nComparaciones) |
| CGenoma * | Cruce (const CGenoma &madre, const CGenoma &padre) |
| void | AddIDNeurona (int nID, vector< int > &v) |
Private Attributes | |
| int | m_nIDSigGenoma |
| Identificador que se asociará al siguiente genoma que se cree. | |
| int | m_nIDSigEspecie |
| Número identificador de la siguiente especie a crear. | |
| int | m_nGeneracion |
| Contador de generaciones transcurridas en la evolución. | |
| int | m_nMejorIndividuo |
| Índice del mejor individuo de la población. | |
| int | m_nEntradasRedes |
| Número de entradas para las redes neuronales. | |
| int | m_nSalidasRedes |
| Número de salidas para las redes neuronales. | |
| bool | m_bMejorIdoneidadValida |
| Antes de la primera generación, no existe mejor idoneidad, empieza a ser válida cuando se coge la primera. | |
| double | m_dMejorIdoneidad |
| Mejor idoneidad alcanzada por la evolución hasta la fecha. | |
| double | m_dIdoneidadTotalAjustada |
| Suma de las idoneidades ajustadas de la población. | |
| double | m_dIdoneidadMediaAjustada |
| Media de las idoneidadea ajustadas. | |
| CInnovacion * | m_pBDInnovaciones |
| Puntero a la Base de datos de innovaciones. | |
| vector< CGenoma > | m_vMejoresIndividuos |
| Copia de los mejores individuos de la época anterior. | |
| TEspecies | m_vEspecies |
| Vector de especies. | |
| TPoblacionIA * | m_vPoblacion |
| Puntero al vector de población. | |
Clase que gestiona la realización de las epocas del algoritmo genético y
la evolución de los individuos.
Definition at line 58 of file CAlgoritmoGenetico.h.
|
|
Definition at line 61 of file CAlgoritmoGenetico.h. References Limpiar(). |
|
|
Definition at line 62 of file CAlgoritmoGenetico.h. References Limpiar(). |
|
||||||||||||
|
Definition at line 97 of file CAlgoritmoGenetico.h. Referenced by Cruce(). |
|
|
Ajustar las idoneidades de las especies
Recorre el vector de especies y ajusta las idoneidades de los individuos que pertenecen Definition at line 159 of file CAlgoritmoGenetico.cpp. References m_vEspecies. Referenced by EspeciarYCalcularHijosAExpandir(). |
|
|
Creación de la mente de un individuo
Este método crea la mente de uno de los individuos de una población entera,
Definition at line 74 of file CAlgoritmoGenetico.cpp. References m_nEntradasRedes, m_nIDSigGenoma, and m_nSalidasRedes. Referenced by CEntrenamiento::CrearMentes(). |
|
||||||||||||
|
Método para cuzar dos genomas y producir un hijo.
Este método coge dos genomas, padre y madre, y los combina siguiendo las leyes establecidas
Definition at line 320 of file CAlgoritmoGenetico.cpp. References AddIDNeurona(), CInnovacion::CrearNeuronaDesdeID(), CSucesos::Log(), m_nIDSigGenoma, m_pBDInnovaciones, SGenEnlace::nIDInnovacion, and RandomInt(). Referenced by Epoca(). |
|
|
|
Dividir en especies y Calcular los hijos a expandir
Separa los individuos en distintas especies, calculando el test de compatibilidad entre Definition at line 247 of file CAlgoritmoGenetico.cpp. References AjustarIdoneidadEspecies(), CGenoma::CalcularCompatibilidad(), CGenoma::GetIdoneidadAjustada(), CBaseDeDatos::GetOpciones(), m_dIdoneidadMediaAjustada, m_dIdoneidadTotalAjustada, m_nIDSigEspecie, m_vEspecies, and CGenoma::SetNumHijosAExpandir(). Referenced by Epoca(). |
|
|
Definition at line 71 of file CAlgoritmoGenetico.h. References m_nGeneracion. |
|
|
Obtener mejores fenotipos anteriores
Crea los fenotipos de los mejores individuos de la población anterior y los devuelve en
Definition at line 140 of file CAlgoritmoGenetico.cpp. References m_vMejoresIndividuos. |
|
||||||||||||
|
Método para inicializar el algoritmo genético.
Utilizando este método, podemos poner a punto el algoritmo genético para empezar a evolucionar
Definition at line 21 of file CAlgoritmoGenetico.cpp. References Err_SinMemoria, CSucesos::ErrorGrave(), GenerarSemillaRandom(), Limpiar(), m_nEntradasRedes, m_nSalidasRedes, and m_pBDInnovaciones. Referenced by CEntrenamiento::IniciarEntrenamiento(). |
|
|
Borrado y puesta a 0 del A.G.
Con este método se elimina todo lo que el algoritmo genético haya podido reservar Definition at line 42 of file CAlgoritmoGenetico.cpp. References m_bMejorIdoneidadValida, m_dIdoneidadMediaAjustada, m_dIdoneidadTotalAjustada, m_dMejorIdoneidad, m_nEntradasRedes, m_nGeneracion, m_nIDSigEspecie, m_nIDSigGenoma, m_nMejorIndividuo, m_nSalidasRedes, and m_pBDInnovaciones. Referenced by CAlgoritmoGenetico(), Inicializar(), and ~CAlgoritmoGenetico(). |
|
|
Ordenación y rescate de la población
Este método ordena el vector de población de mayor a menor según las puntuaciones de sus individuos. Definition at line 89 of file CAlgoritmoGenetico.cpp. References SOrdenPtrGenoma::dIdoneidad, Const_Globales::dMaxDouble, g_Constantes, SOrdenPtrGenoma::genoma, CBaseDeDatos::GetOpciones(), m_bMejorIdoneidadValida, m_dMejorIdoneidad, m_vMejoresIndividuos, and m_vPoblacion. Referenced by Epoca(). |
|
|
Método de reseteo entre épocas
Resetea los valores que sean necesarios para la próxima época, se carga los fenotipos y, también, Definition at line 171 of file CAlgoritmoGenetico.cpp. References CBaseDeDatos::GetOpciones(), m_dIdoneidadMediaAjustada, m_dIdoneidadTotalAjustada, m_dMejorIdoneidad, and m_vEspecies. Referenced by Epoca(). |
|
|
Selección por torneo de genomas
Se realiza la selección de un genoma cualquiera de la población a través de un torneo entre
Definition at line 213 of file CAlgoritmoGenetico.cpp. References m_vPoblacion, and RandomInt(). Referenced by Epoca(). |
|
|
Antes de la primera generación, no existe mejor idoneidad, empieza a ser válida cuando se coge la primera.
Definition at line 80 of file CAlgoritmoGenetico.h. Referenced by Limpiar(), and OrdenarYSalvarIndividuos(). |
|
|
Media de las idoneidadea ajustadas.
Definition at line 83 of file CAlgoritmoGenetico.h. Referenced by Epoca(), EspeciarYCalcularHijosAExpandir(), Limpiar(), and ResetearYEliminar(). |
|
|
Suma de las idoneidades ajustadas de la población.
Definition at line 82 of file CAlgoritmoGenetico.h. Referenced by EspeciarYCalcularHijosAExpandir(), Limpiar(), and ResetearYEliminar(). |
|
|
Mejor idoneidad alcanzada por la evolución hasta la fecha.
Definition at line 81 of file CAlgoritmoGenetico.h. Referenced by Epoca(), Limpiar(), OrdenarYSalvarIndividuos(), and ResetearYEliminar(). |
|
|
Número de entradas para las redes neuronales.
Definition at line 78 of file CAlgoritmoGenetico.h. Referenced by CrearMente(), Inicializar(), and Limpiar(). |
|
|
Contador de generaciones transcurridas en la evolución.
Definition at line 76 of file CAlgoritmoGenetico.h. Referenced by Epoca(), GetGeneracion(), and Limpiar(). |
|
|
Número identificador de la siguiente especie a crear.
Definition at line 75 of file CAlgoritmoGenetico.h. Referenced by EspeciarYCalcularHijosAExpandir(), and Limpiar(). |
|
|
Identificador que se asociará al siguiente genoma que se cree.
Definition at line 74 of file CAlgoritmoGenetico.h. Referenced by CrearMente(), Cruce(), Epoca(), and Limpiar(). |
|
|
Índice del mejor individuo de la población.
Definition at line 77 of file CAlgoritmoGenetico.h. Referenced by Limpiar(). |
|
|
Número de salidas para las redes neuronales.
Definition at line 79 of file CAlgoritmoGenetico.h. Referenced by CrearMente(), Inicializar(), and Limpiar(). |
|
|
Puntero a la Base de datos de innovaciones.
Definition at line 84 of file CAlgoritmoGenetico.h. Referenced by Cruce(), Epoca(), Inicializar(), and Limpiar(). |
|
|
Vector de especies.
Definition at line 86 of file CAlgoritmoGenetico.h. Referenced by AjustarIdoneidadEspecies(), Epoca(), EspeciarYCalcularHijosAExpandir(), and ResetearYEliminar(). |
|
|
Copia de los mejores individuos de la época anterior.
Definition at line 85 of file CAlgoritmoGenetico.h. Referenced by GetMejoresFenotipos(), and OrdenarYSalvarIndividuos(). |
|
|
Puntero al vector de población.
Definition at line 87 of file CAlgoritmoGenetico.h. Referenced by Epoca(), OrdenarYSalvarIndividuos(), and TournamentSelection(). |
1.4.2