algoritmos geneticos

6
UNAM FESC INGENIERÍA QUÍMICA TEMAS SELECTOS DE INTELIGENCIA ARTIFICIAL II JAIR CADENAS LÁZARO ALGORITMOS GENÉTICOS Los objetivos que perseguían John Holland y sus colegas de la Universidad de Michigan cuando concibieron los algoritmos genéticos, eran dos: (1) abstraer y explicar rigurosamente el proceso adaptativo de los sistemas naturales, y (2) diseñar sistemas artificiales que retuvieran los mecanismos más importantes de los sistemas naturales. En este sentido, podemos decir que los algoritmos genéticos son Algoritmos de búsqueda basados en los mecanismos de selección natural y genética natural. Combinan la supervivencia de los más compatibles entre las estructuras de cadenas, con una estructura de información ya aleatorizada, intercambiada para construir un algoritmo de búsqueda con algunas de las capacidades de innovación de la búsqueda humana. Básicamente, el Algoritmo Genético funciona como sigue: en cada generación, se crea un conjunto nuevo de “criaturas artificiales” (cadenas) utilizando bits y partes más adecuadas del progenitor. Esto involucra un proceso aleatorio que no es, en absoluto, simple. La novedad que introducen los Algoritmos Genéticos es que explotan eficientemente la información histórica para especular sobre nuevos puntos de búsqueda, esperando un funcionamiento mejorado. Fueron desarrollados por John Holland y Rechemberg que crearon algoritmos de optimización imitando los principios básicos de la naturaleza. Estos algoritmos se utilizan con éxito para gran variedad de problemas que no permiten una solución eficiente a través de la aplicación de técnicas convencionales. Tiene asimismo aplicaciones variadas en ingeniería, como es el diseño de piezas (turbinas, rotores, etc.), diseño y control de redes, planificación de tareas, síntesis de mecanismos, diseño de tolerancias, etc. y aplicaciones en otros gremios como en sistemas de computación paralelos (paralelización automática de programas secuenciales), química (optimización de procesos de producción, diseño tecnológico y de instalaciones), negocios y comercio (modelización de sistemas económicos complejos, predicción de mercados), medicina (análisis de datos en medicina, diagnóstico automático) o gestión (análisis de datos en gestión, asistentes de gestión, sistemas automáticos de decisión). Codificación de Problemas Cualquier solución potencial a un problema puede ser presentada dando valores a una serie de parámetros. El conjunto de todos los parámetros (genes en la terminología de Algoritmos Gen éticos) se codifica en una cadena de valores denominada cromosoma.

Upload: jx-kdnas

Post on 18-Aug-2015

218 views

Category:

Documents


5 download

DESCRIPTION

Introducción a los algoritmos geneticos en inteligencia artificial

TRANSCRIPT

UNAM FESC INGENIERA QUMICA TEMAS SELECTOS DE INTELIGENCIA ARTIFICIAL II JAIR CADENAS LZARO ALGORITMOS GENTICOS LosobjetivosqueperseguanJohnHollandysuscolegasdelaUniversidaddeMichigancuando concibieronlosalgoritmosgenticos,erandos:(1)abstraeryexplicarrigurosamenteelproceso adaptativo de los sistemas naturales, y (2) disear sistemas artificiales que retuvieran los mecanismosmsimportantesdelossistemasnaturales.Enestesentido,podemosdecirquelosalgoritmos genticos son Algoritmosdebsquedabasadosenlosmecanismosdeseleccinnaturalygenticanatural. Combinanlasupervivenciadelosmscompatiblesentrelasestructurasdecadenas,conuna estructuradeinformacinyaaleatorizada,intercambiadaparaconstruirunalgoritmodebsqueda con algunas de las capacidades de innovacin de la bsqueda humana. Bsicamente,elAlgoritmoGenticofuncionacomosigue:encadageneracin,secreaunconjunto nuevo de criaturas artificiales (cadenas) utilizando bits y partes ms adecuadas del progenitor. Esto involucraunprocesoaleatorioquenoes,enabsoluto,simple.Lanovedadqueintroducenlos AlgoritmosGenticosesqueexplotaneficientementelainformacinhistricaparaespecularsobre nuevos puntos de bsqueda, esperando un funcionamiento mejorado. FuerondesarrolladosporJohnHollandyRechembergquecrearonalgoritmosdeoptimizacin imitandolosprincipiosbsicosdelanaturaleza.Estosalgoritmosseutilizanconxitoparagran variedaddeproblemasquenopermitenunasolucineficienteatravsdelaaplicacindetcnicas convencionales. Tieneasimismoaplicacionesvariadaseningeniera,comoeseldiseodepiezas(turbinas,rotores, etc.), diseo y control de redes, planificacin de tareas, sntesis de mecanismos, diseo de tolerancias, etc.yaplicacionesenotrosgremioscomoensistemasdecomputacinparalelos(paralelizacin automticadeprogramassecuenciales),qumica(optimizacindeprocesosdeproduccin,diseo tecnolgicoydeinstalaciones),negociosycomercio(modelizacindesistemaseconmicos complejos,prediccindemercados),medicina(anlisisdedatosenmedicina,diagnstico automtico)ogestin(anlisisdedatosengestin,asistentesdegestin,sistemasautomticosde decisin). Codificacin de Problemas Cualquiersolucinpotencialaunproblemapuedeserpresentadadandovaloresaunaseriede parmetros. El conjunto de todos los parmetros (genes en la terminologa de Algoritmos Gen ticos) se codifica en una cadena de valores denominada cromosoma. Elconjuntodelosparmetrosrepresentadoporuncromosomaparticularrecibeelnombrede genotipo. El genotipo contiene la informacin necesaria para la construccin del organismo, es decir, lasolucinrealalproblema,denominadafenotipo.Porejemplo,entrminosbiolgicos,la informacingenticacontenidaenelADNdeunindividuoseriaelgenotipo,mientrasquela expresin de ese ADN (el propio individuo) sera el fenotipo. Desde los primeros trabajos de John Holland la codificacin suele hacerse mediante valores binarios. Seasignaundeterminadonmerodebitsacadaparmetroyserealizaunadiscretizaciondela variable representada por cada gen. El nmero de bits asignados depender del grado de ajuste que sedeseealcanzar.Evidentementenotodoslosparmetrostienenporqueestarcodificadosconel mismo nmero de bits. Cada uno de los bits pertenecientes a un gen suele recibir el nombre de alelo. Sin embargo, tambin pueden existir representaciones que codifiquen directamente cada parmetro conunvalorentero,realoenpuntoflotante.Apesardequeseacusaaestasrepresentacionesde degradarelparalelismoimplcitodelasrepresentacionesbinarias,permiteneldesarrollode operadores gen ticos ms especficos al campo de aplicacin del Algoritmo Gentico. Laeleccindelacodificacindependertambindelproblemaaresolverpuespuededarsela situacinenlaquelaresolucindeuncasoseamsptimoelusodeunacodificacinbasadaen nmerosrealesmientrasqueesacodificacincompliquelasolucinenotrocaso.Aspueshayque estudiar la codificacin ms ptima segn el caso que se est estudiando. Un ejemplo tpico de la aplicacin de los Algoritmos Genticos es la optimizacin de los pesos de una redde neuronasartificiales.Lacodificacindelareden formadecromosoma(fig.4)estansencilla comoasignarungendelcromosomaacadaunodelospesosdelared.Tambinsepodranaadir genes que indicasen el nmero de capas de la red, y el nmero de elementos de procesado en cada capa. Operadores Genticos Para el paso de unageneracin a la siguiente se aplican una serie de operadores genticos. Los ms empleadossonlosoperadoresdeseleccin,cruce,copiaymutacin.Enelcasodenotrabajarcon una poblacin intermedia temporal tambin cobran relevancia los algoritmos de reemplazo. 1. Seleccin Losalgoritmosdeseleccinsernlosencargadosdeescogerqueindividuosvanadisponerde oportunidadesdereproducirseyculesno.Puestoquesetratadeimitarloqueocurreenla naturaleza,sehadeotorgarunmayornmerodeoportunidadesdereproduccinalosindividuos ms aptos. Por lo tanto laseleccin de un individuoestar relacionada con su valor de ajuste. No se debe sin embargo eliminar por completo las opciones de reproduccin de los individuos menos aptos, pues en pocas generaciones la poblacin se volvera homognea. Unaopcinbastantecomnconsisteenseleccionarelprimerodelosindividuosparticipantesenel cruce mediante alguno de los mtodos expuestos a continuacin y el segundo de manera aleatoria. 1.1. Seleccin por ruleta Propuesto por DeJong, es posiblemente el mtodo ms utilizado desde los orgenes de los Algoritmos Genticos[BlickleandThiele,1995].Acadaunodelosindividuosdelapoblacinseleasignauna parte proporcional a su ajuste de una ruleta, de tal forma que la suma de todos los porcentajes sea la unidad.Losmejoresindividuosrecibirnunaporcindelaruletamayorquelarecibidaporlos peores.Generalmentelapoblacinestordenadaenbasealajusteporloquelasporcionesms grandesseencuentranaliniciodelaruleta.Paraseleccionarunindividuobastacongenerarun nmero aleatorio del intervalo [0...1] y devolver el individuo situado en esa posicin de la ruleta. Esta posicinsesueleobtenerrecorriendolosindividuosdelapoblacinyacumulandosus proporciones de ruleta hasta que la suma exceda el valor obtenido. Esunmtodomuysencillo,peroineficienteamedidaqueaumentaeltamaodelapoblacin(su complejidadesO(n2)).Presentaademselinconvenientedequeelpeorindividuopuedeser seleccionado ms de una vez. 1.2. Seleccin por torneo Laideaprincipaldeestemtodoconsisteenrealizarlaseleccinenbaseacomparacionesdirectas entre individuos. Existen dos versiones de seleccin mediante torneo: Determinstica Probabilstica En la versin determinstica se selecciona al azar un nmero p de individuos (generalmente se escoge p=2).Deentrelosindividuosseleccionadosseseleccionaelmsaptoparapasarloalasiguiente generacin. La versin probabilstica nicamente se diferencia en el paso de seleccin del ganador del torneo. En vezdeescogersiempre elmejorsegeneraunnmeroaleatoriodelintervalo[0..1],siesmayor que unparmetrop(fijadoparatodoelprocesoevolutivo)seescogeelindividuomsaltoyencaso contrario el menos apto. Generalmente p toma valores en el rango 0,5 < p 1. Variandoelnmerodeindividuosqueparticipanencadatorneosepuedemodificarlapresinde seleccin. Cuando participan muchos individuos en cada torneo, la presin de seleccin es elevada y los peores individuos apenas tienen oportunidades de reproduccin. Un caso particular es el elitismo global.Setratade untorneoenelqueparticipantodoslosindividuosdelapoblacinconlocualla seleccinsevuelvetotalmentedeterminstica.Cuandoeltamaodeltorneoesreducido,lapresin de seleccin disminuye y los peores individuos tienen ms oportunidades de ser seleccionados. Elegir uno u otro mtodo de seleccin determinara la estrategia de bsqueda del Algoritmo Gentico. Si se opta por un mtodo con una alta presin de seleccin se centra la bsqueda de las soluciones en unentornoprximoalasmejoressolucionesactuales.Porelcontrario,optando porunapresin de seleccinmenorsedejaelcaminoabiertoparalaexploracindenuevasregionesdelespaciode bsqueda. Existen muchos otros algoritmos de seleccin. Unos buscan mejorar la eficiencia computacional, otros el nmero de veces que los mejores o peores individuos pueden ser seleccionados. Algunos de estos algoritmossonmuestreodeterminstico,escalamientosigma,seleccinporjerarquas,estado uniforme, sobrante estocstico, brecha generacional, etc. 2. Cruce Una vez seleccionados los individuos, estos son recombinados para producir la descendencia que se insertaraenlasiguientegeneracin.Talycomosehaindicadoanteriormenteelcruceesuna estrategiadereproduccinsexual.Suimportanciaparalatransicinentregeneracioneseselevada puesto que las tasas de cruce con las que se suele trabajar rondan el 90%. Losdiferentesmtodosdecrucepodrnoperardedosformasdiferentes.Siseoptaporuna estrategiadestructivalosdescendientesseinsertarnenlapoblacintemporalaunquesuspadres tenganmejorajuste(trabajandoconunanicapoblacinestacomparacinserealizarconlos individuosareemplazar).Porelcontrarioutilizandounaestrategianodestructivaladescendencia pasaralasiguientegeneracinnicamentesisuperalabondaddelajustedelospadres(odelos individuosareemplazar).Laideaprincipaldelcrucesebasaenque,sisetomandosindividuos correctamenteadaptadosalmedioyseobtieneunadescendenciaquecompartagenesdeambos, existe la posibilidad de que los genes heredados sean precisamente los causantes de la bondad de los padres. Alcompartirlascaractersticasbuenasdedosindividuos,ladescendencia,oalmenospartedeella, debera tener una bondad mayor que cada uno de los padres por separado. Si el cruce no agrupa las mejorescaractersticasenuno de los hijosyladescendenciatieneun peorajuste quelospadresno significaqueseestdandounpasoatrs.Optandoporunaestrategiadecrucenodestructiva garantizamos que pasen a la siguientegeneracin los mejores individuos. Si, an con un ajuste peor, seoptaporinsertaraladescendencia,ypuestoquelosgenesdelospadrescontinuarnenla poblacin - aunque dispersos y posiblemente levemente modificados por la mutacin - en posteriores cruces se podrn volver a obtener estos padres, recuperando as la bondad previamente perdida.3. Algoritmos de Reemplazo Cuando en vez de trabajar con una poblacin temporal se hace con una nica poblacin, sobre la que serealizanlasseleccioneseinserciones,debertenerseencuentaqueparainsertarunnuevo individuodeberdeeliminarsepreviamenteotrodelapoblacin.Existendiferentesmtodosde reemplazo: Aleatorio: el nuevo individuo se inserta en un lugar cualquiera de la poblacin. Reemplazodepadres:seobtieneespacioparalanuevadescendencialiberandoelespacioocupado por los padres. Reemplazodesimilares:unavezobtenidoelajustedeladescendenciaseseleccionaungrupode individuos (entre seis y diez) de lapoblacin con un ajuste similar. Se reemplazan aleatoriamente los que sean necesarios. Reemplazodelospeores:deentreunporcentajedelospeoresindividuosdelapoblacinse seleccionan 4. Copia Lacopiaeslaotraestrategiareproductivaparalaobtencindeunanuevageneracinapartirdela anterior.Adiferenciadelcruce,setratadeunaestrategiadereproduccinasexual.Consiste simplemente en la copia de un individuo en la nueva generacin. Elporcentajedecopiasdeunageneracinalasiguienteesrelativamentereducido,puesencaso contrariosecorreelriesgodeunaconvergenciaprematuradelapoblacinhaciaeseindividuo.De estamaneraeltamaoefectivodelapoblacinsereduciranotablementeylabsquedaenel espaciodelproblemasefocalizaraenelentornodeeseindividuo.Loquegeneralmentesesuele hacer es seleccionar dos individuos para el cruce, y si este finalmente no tiene lugar, se insertan en la siguiente generacin los individuos seleccionados. 5. Mutacin La mutacin de un individuo provoca que alguno de sus genes, generalmente uno slo, vare su valor de forma aleatoria. Aunque se pueden seleccionar los individuos directamente de lapoblacin actual ymutarlosantesdeintroducirlosenlanuevapoblacin,lamutacinsesueleutilizardemanera conjunta con el operador de cruce. Primeramente se seleccionan dos individuos de la poblacin para realizarelcruce.Sielcrucetienexitoentoncesunodelosdescendientes,oambos,semutacon cierta probabilidad Pm. Se imita de esta manera el comportamiento que se da en la naturaleza, pues cuandosegeneraladescendenciasiempreseproducealgntipodeerror,porlogeneralsinmayor trascendencia, en el paso de la carga gentica de padres a hijos. La probabilidad de mutacin es muy baja, generalmente menor al 1%. Esto se debe sobre todo a que los individuos suelen tener un ajuste menor despus de mutados. Sin embargo se realizan mutaciones paragarantizarqueningnpuntodelespaciodebsquedatengaunaprobabilidadnuladeser examinado. PARMETROS DE LOS ALGORITMOS GENTICOS. Para el estudio de los algoritmos genticos hay que tener en cuenta una serie de parmetros: 1 Tamao de la Poblacin Esteparmetronosindicaelnmerodecromosomasquetenemosennuestrapoblacinparauna generacindeterminada.Encasodequeestamedidaseainsuficiente,elalgoritmogenticotiene pocasposibilidadesderealizarreproduccionesconloqueserealizaraunabsquedadesoluciones escasaypocoptima.Porotroladosilapoblacinesexcesiva,elalgoritmogenticoser excesivamentelento.Dehechoestudiosrevelanquehayunlmiteapartirdelcualesineficiente elevar el tamao de la poblacin puesto que no se consigue una mayor velocidad en la resolucin del problema. 2 Probabilidad de Cruce Indicalafrecuenciaconlaqueseproducencrucesentreloscromosomaspadreesdecir,quehaya probabilidad de reproduccin entre ellos. En caso de que no exista probabilidad de reproduccin, los hijosserncopiasexactasselospadres.Encasodehaberla,loshijostendrnpartesdelos cromosomasdelospadres.Silaprobabilidaddecruceesdel100%elhijosecreatotalmentepor cruce, no por partes. 3 Probabilidad de Mutacin Nos indica la frecuencia con la que los genes de un cromosoma son mutados. Si no hay mutacin, los descendientes son los mismos que haba tras la reproduccin. En caso de que haya mutaciones, parte del cromosoma descendiente es modificado y si la probabilidad de mutacin es del 100%, la totalidad delcromosomasecambia.Enestecaso,nosecambiansimplementeunosbitsdelcromosomasino quesecambiantodos,loquesignificaqueseproduceunainversinenelcromosomaynouna mutacin por lo que la poblacin degenera muy rpidamente. Algoritmo DesarrolladoporJohnH.Holland,elalgoritmogenticooperaentoncesaniveldegenotipodelas soluciones mediante la siguiente secuencia: 1. Comenzar con una poblacin inicial, la cual puede ser generada de manera aleatoria. 2. Calcular el fitness (aptitud) de cada individuo. 3. Aplicar el operador de seleccin con base en el fitness de la poblacin. 4.Aplicarlosoperadoresgenticosdereproduccin,cruceymutacinalapoblacinactual para generar a la poblacin de la siguiente generacin. 5. Ir al paso 2 hasta que la condicin de parada se satisfaga. 6. Cuando se cumple la condicin de parada, se devuelve al mejor individuo encontrado (bien el mejor de todas las generaciones, bien el mejor de la ltima generacin). Aligualqueenmuchasotrasheursticas,elcomportamientodelalgoritmogenticoesaltamente dependiente de los parmetros iniciales (tamao de la poblacin, porcentaje de cruce, porcentaje de mutacin,nmerodegeneraciones,etc.),porloquesernecesarioajustaresosparmetrospara tratar de mejorar la solucin para los objetivos del problema. A cada iteracin de este proceso se le denomina una generacin. Un algoritmo gentico tpicamente se itera de 50 a 500 o incluso ms generaciones. El conjunto entero de generaciones se denomina una ejecucin. Al final de una ejecucin existen a menudo uno o varios cromosomas altamente adecuados en la poblacin, y que pueden ser elegidos como solucin al problema. Lafuncindeevaluacinodefitnessdeunproblemaesrealmentelafuncinquesedesea optimizar. Sudiseoesjuntoconeldelgenotipo,unadelascaractersticasmsimportantesala hora de encontrar la mejor solucin a un problema.