ebook img

Introducción a MatlabR para Resolver Problemas de Ingenier´ıa Aplicando Algoritmos Genéticos PDF

84 Pages·2012·1.87 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Introducción a MatlabR para Resolver Problemas de Ingenier´ıa Aplicando Algoritmos Genéticos

Introduccio´n a Matlab(cid:13)R para Resolver Problemas de Ingenier´ıa Aplicando Algoritmos Gen´eticos Norberto Hern´andez Romero, Joselito Medina Mar´ın, Juan Carlos Seck Tuoh Mora Octubre 2012 Directorio: Mtro. Humberto Augusto Veras Godoy Rector Mtro. Adolfo Pontigo Loyola Secretario General L.A.E. Jorge A. del Castillo Tovar Coordinacio´n de Extensio´n y Cultura ´ Dr. Orlando Avila Pozos Director del Instituto de Ciencias B´asicas e Ingenier´ıa (ICBI) Dr. Juan Alberto Acosta Secretario del ICBI M. en C. Carlos Mart´ınez Espinosa Coordinador de Extensio´n del ICBI Mtro. Joel Montesinos Hern´andez ´ Jefe del Area Acad´emica de Ingenier´ıa Comit´e editorial ICBI: Dra. Rosa Icela Beltra´n Hern´andez Dra. Eva Selene Hern´andez Gress Dra. Leticia Esperanza Herna´ndez Cruz Dra. Mar´ıa del Consuelo Cuevas Cardona Dr. Rub´en Alejandro Mart´ınez Avendan˜o Dr. Jos´e Guadalupe Alvarado Rodr´ıguez Dr. Joel Sua´rez Cansino Contenido 1 Introducci´on 7 1.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Relevancia de Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3 Relevancia de los Algoritmos Gen´eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4 Optimizaci´on en Ingenier´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 Relevancia del Problema de Empacado en Contenedores . . . . . . . . . . . . . . . . . . . . . 9 1.6 Organizaci´on y Enfoque del Libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 Fundamentos de Programaci´on en Matlab(cid:13)R 11 2.1 Introducci´on a Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Operadores Aritm´eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Operadores Relacionales y L´ogicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Constantes, Tipos de Datos y Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 Funciones Matem´aticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.1 Funciones Trigonom´etricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.2 Funciones Exponenciales y Logar´ıtmicas . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.3 Funciones Matem´aticas Especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6 Vectores y Matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6.1 Operaciones con Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6.2 Operaciones con Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.7 Archivos Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.7.1 Graficaci´on 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.7.2 Graficaci´on 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.8 Control de Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.8.1 Estructura if −elseif −else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.8.2 Estructura for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.8.3 Estructura while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.9 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9.2 Graficaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9.3 Secuencia if −elseif −else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9.4 Ciclo for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9.5 Ciclo while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3 Principios de Algoritmos Gen´eticos 41 3.1 Algoritmos Evolutivos Computacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.1 Definici´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.2 Algoritmos Gen´eticos Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.2.1 Poblaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5 6 3.2.2 Codificaci´on/Decodificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2.3 Funci´on Costo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.4 Selecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2.5 Cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.2.6 Mutaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2.7 Algoritmo Gen´etico Binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 Pruebas y Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4 Problema de Empacado en Contenedores 59 4.1 Descripci´on del Problema de Empacado en Contenedores . . . . . . . . . . . . . . . . . . . . 59 4.2 Relevancia del Problema de Empacado en Contenedores . . . . . . . . . . . . . . . . . . . . . 61 4.3 Representaci´on Gen´etica del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.3.1 Representaci´on Basada en Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.3.2 Representaci´on Basada en Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.3.3 Representaci´on Basada en Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.4 Operaciones Gen´eticas para la Representaci´on Basada en Grupos . . . . . . . . . . . . . . . . 64 4.4.1 Cruce de Cromosomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.5 Mutaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.6 Funci´on de Ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.7 Implementaci´on del Algoritmo Gen´etico en Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . 66 4.7.1 Inicializaci´on de Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.7.2 Evaluaci´on de Soluciones con la Funci´on de Ajuste . . . . . . . . . . . . . . . . . . . . 68 4.7.3 Selecci´on de Mejores Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.7.4 Cruce de Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.7.5 Mutaci´on de Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.7.6 Implementaci´on Integrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.8 Apuntes Finales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5 Conclusiones 79 5.1 Resultados en la Soluci´on del Problema de Empacado en Contenedores . . . . . . . . . . . . . 79 5.2 Ventajas de Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.3 Ventajas y Limitaciones de los Algoritmos Gen´eticos . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.1 Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.2 Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.4 Trabajo Futuro Relacionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Cap´ıtulo 1 Introduccio´n 1.1 Objetivo General Estematerialbibliogr´aficofueelaboradoconlafinalidaddemostrarlaaplicaci´ondeMatlab(cid:13)R eneldesarrollo de metodolog´ıas no convencionales en el campo de la optimizaci´on de sistemas discretos. A pesar de la existencia de herramientas matem´aticas en el campo de la optimizaci´on, su aplicaci´on en entornos reales es una tarea que requiere un amplio conocimiento formal en el ´area y experiencia en su aplicaci´on. Adem´as, si se requiere automatizar el proceso de optimizaci´on pueden utilizarse software de aplicaci´on general que pudieran no llegar a cubrir las necesidades del problema. Por otro lado, si se desea desarrollarunaaplicaci´onalamedidaparaelproblemadeoptimizaci´on,senecesitacontarconconocimientos en lenguajes de programaci´on de alto nivel. En cambio, con la aparici´on de heur´ısticas alternas a los m´etodos cl´asicos de optimizaci´on, es posible encontrarsolucionesaceptablesaproblemasencontradosenlarealidad,sinnecesidaddedesarrollarmodelos matema´ticos demasiado complejos. Una de estas alternativas de optimizaci´on son los Algoritmos Gen´eticos (AG), cuya implementaci´on no requiere de conocimientos matem´aticos profundos y pueden encontrar solu- ciones aceptables del problema. 1.2 Relevancia de Matlab(cid:13)R Los algoritmos gen´eticos pueden ser programados f´acilmente en cualquier lenguaje de programaci´on. Sin embargo, uno de los que m´as se est´a utilizando actualmente en las ´areas de la ingenier´ıa es Matlab(cid:13)R. Matlab(cid:13)R esunsoftwaredec´alculonum´ericoqueofreceunambientepararealizaroperacionesaritm´eticas y vectoriales en l´ınea de comandos. Adem´as, ofrece un entorno de programaci´on de scripts que facilitan la implementaci´on de c´odigos para la soluci´on de problemas de gran envergadura. Matlab(cid:13)R ha sido utilizado en la implementaci´on de algoritmos de optimizaci´on, y en particular en la implementaci´on de algoritmos gen´eticos, debido a su facilidad de programaci´on y su poder de c´omputo en el manejo de vectores y matrices. Adem´as, ofrece herramientas para graficar funciones o series de datos en 2 y 3 dimensiones, lo que permite analizar los resultados de la optimizaci´on de forma visual. Este software de c´alculo num´erico cuenta con un conjunto de funciones predefinidas para realizar operaciones matriciales, para que el usuario no invierta tiempo en la programaci´on de tales operaciones. Adem´as, en este software se incluyen m´odulos adicionales llamados “toolbox”, los cuales contienen entornos para el desarrollo de aplicaciones m´as espec´ıficas. Entre estos “toolbox” se encuentran Simulink – utilizadoenlasimulaci´ondesistemasdin´amicosendiferentesdominios;SymbolicMath–paraeldesarrollode operacionesconmatem´aticasimb´olica;Optimization–ofrecealgoritmosdeoptimizaci´onest´andar;Statistics –proporcionaalgoritmosyherramientasparaorganizar,analizarymodelarconjuntosdedatos;entremuchos otros, que facilitan el desarrollo de aplicaciones robustas. 7 8 CAP´ITULO 1. INTRODUCCIO´N 1.3 Relevancia de los Algoritmos Gen´eticos Los AG tienen un gran impacto como medios de optimizaci´on de procesos industriales, biol´ogicos, qu´ımicos, modelos matem´aticos, etc., debido que trabajan con funciones lineales, no lineales, discretas, no suaves, probabil´ısticas y no necesitan de la existencia de derivada de la funci´on objetivo [15], as´ı las razones por las cuales los AG pueden tener ´exito en este tipo de planteamiento son las siguientes: 1. Los AG trabajan con un conjunto de par´ametros codificados, no con los par´ametros de forma directa. 2. Los AG realizan una bu´squeda con un conjunto de individuos en todo el espacio factible no solo con un punto. 3. Los AG usan la informaci´on de la funci´on objetivo, no con sus derivadas. 4. Los AG usan reglas de transici´on probabil´ıstica, no reglas deterministas. 5. Los AG son procedimientos robustos de optimizaci´on que pueden ser implementados en arquitecturas de computo paralelo. 1.4 Optimizacio´n en Ingenier´ıa Laoptimizaci´onpuedeplantearsecomoajustarlasentradasocaracter´ısticasdeunprocesoindustrial,modelo matema´tico o experimento para lograr que la salida alcance un punto m´ınimo o m´aximo dependiendo de los intereses. Si la salida es ganancia el objetivo es maximizar y si son p´erdidas la salida es minimizar. Sielproblemaaoptimizarsepuedeplantearmedianteunmodelomatem´aticodescritoporf :X ⊆Rn → R, donde X es el espacio de bu´squeda. As´ı el problema de optimizaci´on puede definirse como: min f(X)X⊆Rn sujeto a Ck ≤0 (1.1) DondeX ⊆Rn esunconjuntoenelespacioEuclidianodedimensi´onn,f(X)esunconjuntodenu´meros reales, k es el nu´mero de restricciones y C proporciona la forma de la restricci´on y la restricci´on es una k funci´on que limita el espacio de bu´squeda, a esto se le llama problema de optimizaci´on restringido. Un punto X se le llama punto factible si satisface todas las restricciones y al conjunto de todos los puntos i factibles se le llama conjunto factible de bu´squeda. En el caso donde las restricciones no se definen entonces es un problema de optimizaci´on no restringido, por lo tanto, el dominio de la funci´on es el espacio factible de bu´squeda. Los diferentes campos de la optimizaci´on puedes clasificarse por las propiedades de funci´on objetivo, la forma de las restricciones, el dominio, naturaleza de la funci´on objetivo, etc. La siguiente tabla muestra una clasificaci´on respecto de las diferentes t´ecnicas matem´aticas desarrolladas para la optimizaci´on de funciones objetivo [22]. Hay un gran nu´mero de m´etodos para resolver eficazmente los problemas de optimizaci´on definidos en la tabla 1 como se muestran en las siguientes referencias [12] [5] [2] [23] [7] [4] [6] [3]. Sin embargo, bajo todos los supuestos que se realizan en la modelaci´on del problema es frecuente para ciertas aplicaciones de laingenier´ıaqueelmodelonorepresentelarealidadyenotras, lafunci´onobjetivonopuedeserdefinidapor una ecuaci´on algebraica o diferencial, debido a que la funci´on objetivo puede contener regiones en donde la funci´on no es suave o no tiene derivada o la salida de la funci´on objetivo es una colecci´on de datos que se obtienen de instrumentos de medici´on y por lo tanto, ante la ausencia de una funci´on objetivo no es posible aplicar los t´ecnicas definidas en la Tabla 1 y como consecuencia esta es una de las razones para acudir a las t´ecnicas computacionales evolutivas. 1.5. RELEVANCIA DEL PROBLEMA DE EMPACADO EN CONTENEDORES 9 Tabla 1.1: Herramientas anal´ıticas para la optimizaci´on de sistemas Criterio de Tipo de problema Caracter´ısticas clasificaci´on de optimizaci´on Por la forma Lineal Funci´on objetivo y restricciones lineales. de la funci´on No lineal Funci´on objetivo y restricciones no lineales, con existencia de sus derivadas. objetivo y/o sus Convexa Funci´on objetivo y conjunto de bu´squeda representado por un conjunto convexo. restricciones Estoc´astica Funci´on objetivo con ruido. Por el espacio Continuo Variables discretas en la funci´on objetivo y restricciones. de bu´squeda Discreto Variables reales en la funci´on objetivo y restricciones. H´ıbrido Variables reales y discretas en la funci´on objetivo y restricciones. Por la naturaleza Din´amica Funci´on objetivo variante en el tiempo. del problema Multiobjetivo Conjunto de funciones objetivo 1.5 Relevancia del Problema de Empacado en Contenedores Con el fin de ejemplificar la aplicaci´on de AG implementados en Matlab(cid:13)R a problemas de ingenier´ıa, se tomar´a el problema de empacado en contenedores. El problema consiste en empacar un conjunto de objetos en la menor cantidad de empaques posibles, donde todos estos tienen una capacidad m´axima [8]. Este problema resulta de f´acil formulaci´on, sin embargo sus caracter´ısticas combinatorias hacen que su soluci´on no sea sencilla, por lo que se requieren de t´ecnicas evolutivas y heur´ısticas para encontrar una soluci´on satisfactoria para instancias del problema que tomen en cuenta decenas de objetos [11] [8]. Aplicaciones de este problema se pueden encontrar en la asignaci´on de tareas y m´aquinas en sistemas de manufactura [20] [19], asignaci´on de tareas en microprocesadores [10] [18] [25] y la minimizaci´on de espacios y balance en el empaque de mercanc´ıas en contenedores [26] [21] [16]. 1.6 Organizacio´n y Enfoque del Libro Este libro est´a enfocado a exponer los conceptos esenciales y aplicaciones de los algoritmos gen´eticos sin tener que dominar a profundidad un lenguaje de programaci´on. Es por esto que se ha elegido Matlab(cid:13)R como sistema computacional para implementar los ejemplos del libro ya que permita una implementaci´on r´apida y f´acil de aprender, lo que nos permite concentrarnos en los detalles y el uso de los algoritmos gen´eticos as´ı como de su aplicaci´on al problema de empacado en contenedores, m´as que en las t´ecnicas de programaci´on. El libro est´a organizado de la siguiente manera, el Cap´ıtulo 1 presenta los conceptos b´asicos acerca del ambiente de trabajo de Matlab(cid:13)R as´ı como las instrucciones m´as importantes que se utilizar´an para la implementaci´on de algoritmos gen´eticos. Esta parte contiene una gran variedad de ejemplos que permitir´an allectorrealizarprogramasnotrivialesdemanerasencilla. ElCap´ıtulo2describeloslosconceptosb´asicosde losalgoritmosgen´eticosbinarios. Seexplicanejemplosparalaoptimizaci´ondefuncionesysuimplementaci´on utilizando las instrucciones vistas en el cap´ıtulo anterior. Por u´ltimo, el Cap´ıtulo 3 expone la aplicaci´on de algoritmos gen´eticos al problema de empacado en contenedores. Se describe paso a paso la implementaci´on tantodelageneraci´onaleatoriadesolucionescomodelaimplementaci´ondiscretadelosoperadoresgen´eticos para la soluci´on del problema descrito anteriormente. Se muestran ejemplos de instancias del problema y su 10 CAP´ITULO 1. INTRODUCCIO´N soluci´onparaejemplificaryanalizarelfuncionamientodelalgoritmogen´etico. Estosejemplofuerontomados de recursos en l´ınea que son comu´nmente utilizados para validar algoritmos para el problema de empacado en contenedores. Por u´ltimo, se presentan comentarios finales indicando otras direcciones en las cuales se pueden aplicar los algoritmos gen´eticos para problemas discretos.

Description:
2 Fundamentos de Programación en Matlab R. 11. 2.1 Introducción a .. Entre estos “ toolbox ” se encuentran Simulink – utilizado en la simulación de Los AG son técnicas de búsqueda y optimización basados en los principios de la genética y selección natural. Los AG están compuestos de
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.